From d1422feb80802a57eee0589bf980841aea833c23 Mon Sep 17 00:00:00 2001 From: "John \"Elwin\" Edwards" Date: Sat, 1 May 2021 09:51:30 -0400 Subject: [PATCH 01/10] Fix a few more miscellaneous compiler warnings. --- arogue7/passages.c | 3 +++ srogue/passages.c | 1 + urogue/dict.c | 2 -- urogue/dict.h | 2 -- urogue/dictutil.c | 2 -- urogue/dictutil.h | 2 -- urogue/memory.c | 2 -- urogue/newlvl.c | 3 --- urogue/verify.c | 2 -- xrogue/network.h | 1 - xrogue/rip.c | 2 ++ 11 files changed, 6 insertions(+), 16 deletions(-) diff --git a/arogue7/passages.c b/arogue7/passages.c index 844c1c6..5f62dd8 100644 --- a/arogue7/passages.c +++ b/arogue7/passages.c @@ -216,7 +216,10 @@ conn(int r1, int r2) offset = abs(spos.y - epos.y); } else + { debug("error in connection tables"); + return; + } /* * Draw in the doors on either side of the passage or just put #'s diff --git a/srogue/passages.c b/srogue/passages.c index 8fe426f..be2b840 100644 --- a/srogue/passages.c +++ b/srogue/passages.c @@ -199,6 +199,7 @@ conn(int r1, int r2) } else { msg("Error in connection tables."); + return; } /* * Draw in the doors on either side of the passage diff --git a/urogue/dict.c b/urogue/dict.c index 202e3b8..47bc320 100644 --- a/urogue/dict.c +++ b/urogue/dict.c @@ -21,8 +21,6 @@ ** ******************/ -static char sccsid[] = "%W% %G%"; - #include #include #if !defined(OS2) && !defined(_WIN32) diff --git a/urogue/dict.h b/urogue/dict.h index 6e0bd3c..98f2d9d 100644 --- a/urogue/dict.h +++ b/urogue/dict.h @@ -18,8 +18,6 @@ #ifndef dict_h_included #define dict_h_included -static char dict_sccsid[] = "%W% %G%"; - #ifndef TRUE #define TRUE 1 #define FALSE 0 diff --git a/urogue/dictutil.c b/urogue/dictutil.c index 49766ed..ed7e5c9 100644 --- a/urogue/dictutil.c +++ b/urogue/dictutil.c @@ -12,8 +12,6 @@ ** Utilities for Dictionary Maintenence Functions *************************************************************************/ -static char sccsid[] = "%W% %G%"; - #include #include #include diff --git a/urogue/dictutil.h b/urogue/dictutil.h index f6e74ab..5b2f2c0 100644 --- a/urogue/dictutil.h +++ b/urogue/dictutil.h @@ -15,8 +15,6 @@ #ifndef dictutil_h_included #define dictutil_h_included -static char dictutil_sccsid[] = "%W% %G%"; - #include #include "dict.h" diff --git a/urogue/memory.c b/urogue/memory.c index bef8a6c..f78e8bb 100644 --- a/urogue/memory.c +++ b/urogue/memory.c @@ -19,8 +19,6 @@ #include "config.h" #endif -static char sccsid[] = "%W%\t%G%"; - /* Debugging memory allocation code that tries to trap common memory problems like overwriting storage and stepping on memory pointer chains. If code doesn't use malloc, free, and realloc a lot, these routines can be left in diff --git a/urogue/newlvl.c b/urogue/newlvl.c index 19dc324..1ad20e0 100644 --- a/urogue/newlvl.c +++ b/urogue/newlvl.c @@ -37,7 +37,6 @@ new_level(LEVTYPE ltype, int special) struct linked_list *item, *nitem; struct thing *tp; struct linked_list *fpack = NULL; - int going_down = TRUE; coord stairs; /* Start player off right */ @@ -51,8 +50,6 @@ new_level(LEVTYPE ltype, int special) if (level >= max_level) max_level = level; - else - going_down = FALSE; /* Free up the monsters on the last level */ diff --git a/urogue/verify.c b/urogue/verify.c index f6b7207..cc42707 100644 --- a/urogue/verify.c +++ b/urogue/verify.c @@ -6,8 +6,6 @@ All rights reserved. */ -static char sccsid[] = "%W% %G%"; - #include "rogue.h" void verify_function(const char *file, const int line) diff --git a/xrogue/network.h b/xrogue/network.h index 53eaa18..b1dd396 100644 --- a/xrogue/network.h +++ b/xrogue/network.h @@ -21,7 +21,6 @@ /* #undef NETCOMMAND "uux - -n '%s!%s -u' >/dev/null 2>&1" */ /* #define NETCOMMAND "usend -s -d%s -uNoLogin -!'%s -u' - 2>/dev/null" */ -#define NETCOMMAND "" /* Networking information -- should not vary among networking machines */ diff --git a/xrogue/rip.c b/xrogue/rip.c index 0b8cbeb..625c4ae 100644 --- a/xrogue/rip.c +++ b/xrogue/rip.c @@ -420,6 +420,7 @@ score(unsigned long amount, int flags, short monst) (flags == WINNER) ? (short) max_level : (short) level, monst, player.t_ctype, thissys, login) ) { +#ifdef NETCOMMAND /* Send this update to the other systems in the network */ int i, j; char cmd[256]; /* Command for remote execution */ @@ -472,6 +473,7 @@ score(unsigned long amount, int flags, short monst) (void) pclose(rmf); } } +#endif } } } From 2b6d8bcb77f32ed3063c7a0c5060bb2111632bdb Mon Sep 17 00:00:00 2001 From: "John \"Elwin\" Edwards" Date: Sun, 2 May 2021 21:54:11 -0400 Subject: [PATCH 02/10] Advanced Rogue 7: ignore file locations in the save file when restoring. The variables file_name, score_file, and home are no longer overwritten with the values stored in the save file. Those values could be inaccurate if the files have been moved or configuration has changed. --- arogue7/state.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/arogue7/state.c b/arogue7/state.c index fdf5ae4..c93c5b6 100644 --- a/arogue7/state.c +++ b/arogue7/state.c @@ -2511,6 +2511,7 @@ int rs_save_file(FILE *savef) { int i; + char temp_buf[LINELEN]; if (write_error) return(WRITESTAT); @@ -2583,9 +2584,17 @@ rs_save_file(FILE *savef) rs_write_misc(savef); rs_write(savef,whoami,LINELEN); rs_write(savef,huh,LINELEN); - rs_write(savef,file_name,LINELEN); - rs_write(savef,score_file,LINELEN); - rs_write(savef,home,LINELEN); + /* These path names are no longer used when restoring. They are only + * written here for compatibility. */ + strncpy(temp_buf, file_name, LINELEN); + temp_buf[LINELEN-1] = '\0'; + rs_write(savef, temp_buf, LINELEN); + strncpy(temp_buf, score_file, LINELEN); + temp_buf[LINELEN-1] = '\0'; + rs_write(savef, temp_buf, LINELEN); + strncpy(temp_buf, home, LINELEN); + temp_buf[LINELEN-1] = '\0'; + rs_write(savef, temp_buf, LINELEN); rs_write_window(savef, cw); rs_write_window(savef, hw); rs_write_window(savef, mw); @@ -2638,6 +2647,7 @@ int rs_restore_file(FILE *inf) { int i; + char unused_buf[LINELEN]; if (read_error || format_error) return(READSTAT); @@ -2715,9 +2725,10 @@ rs_restore_file(FILE *inf) rs_read_misc(inf); rs_read(inf,whoami,LINELEN); rs_read(inf,huh,LINELEN); - rs_read(inf,file_name,LINELEN); - rs_read(inf,score_file,LINELEN); - rs_read(inf,home,LINELEN); + /* These three path names are now ignored. */ + rs_read(inf, unused_buf, LINELEN); /* file_name */ + rs_read(inf, unused_buf, LINELEN); /* score_file */ + rs_read(inf, unused_buf, LINELEN); /* home */ rs_read_window(inf, cw); rs_read_window(inf, hw); rs_read_window(inf, mw); From 3dfd8fd09b82834d478c2356f54d9c8eb3332bc1 Mon Sep 17 00:00:00 2001 From: "John \"Elwin\" Edwards" Date: Mon, 3 May 2021 19:05:37 -0400 Subject: [PATCH 03/10] Advanced Rogue family: fix some potential buffer overflows. Some code for determining the score file location assumed that PATH_MAX would be less than 1024, which cannot be guaranteed. Advanced Rogue 5 and 7, and XRogue, have had the buffers for the file name enlarged. UltraRogue never called the functions, so the code has been deleted instead. --- arogue5/main.c | 5 +++-- arogue5/mdport.c | 16 ++++++++++------ arogue5/options.c | 3 ++- arogue5/rogue.c | 3 ++- arogue7/main.c | 6 ++++-- arogue7/mdport.c | 15 +++++++++------ arogue7/options.c | 3 ++- arogue7/rogue.c | 3 ++- urogue/mdport.c | 48 ----------------------------------------------- xrogue/main.c | 6 ++++-- xrogue/options.c | 3 ++- xrogue/rogue.c | 3 ++- xrogue/state.c | 15 +++++++++------ 13 files changed, 51 insertions(+), 78 deletions(-) diff --git a/arogue5/main.c b/arogue5/main.c index 8f9a511..61705fb 100644 --- a/arogue5/main.c +++ b/arogue5/main.c @@ -61,6 +61,7 @@ main(int argc, char *argv[], char *envp[]) * get home and options from environment */ strncpy(home,md_gethomedir(),LINELEN); + home[LINELEN-1] = '\0'; #ifdef SAVEDIR if (argc >= 3 && !strcmp(argv[1], "-n")) { @@ -82,8 +83,8 @@ main(int argc, char *argv[], char *envp[]) } #ifdef SCOREFILE - strncpy(score_file, SCOREFILE, LINELEN); - score_file[LINELEN - 1] = '\0'; + strncpy(score_file, SCOREFILE, PATH_MAX); + score_file[PATH_MAX - 1] = '\0'; #else /* Get default score file */ strcpy(score_file, roguedir); diff --git a/arogue5/mdport.c b/arogue5/mdport.c index 17f17f8..968f948 100644 --- a/arogue5/mdport.c +++ b/arogue5/mdport.c @@ -418,7 +418,7 @@ directory_exists(char *dirname) char * md_getroguedir(void) { - static char path[1024]; + static char path[PATH_MAX-20]; char *end,*home; if ( (home = getenv("ROGUEHOME")) != NULL) @@ -427,13 +427,17 @@ md_getroguedir(void) { strncpy(path, home, PATH_MAX - 20); - end = &path[strlen(path)-1]; + if (path[PATH_MAX-21] == '\0') + { - while( (end >= path) && ((*end == '/') || (*end == '\\'))) - *end-- = '\0'; + end = &path[strlen(path)-1]; - if (directory_exists(path)) - return(path); + while( (end >= path) && ((*end == '/') || (*end == '\\'))) + *end-- = '\0'; + + if (directory_exists(path)) + return(path); + } } } diff --git a/arogue5/options.c b/arogue5/options.c index a1e50b9..39795fa 100644 --- a/arogue5/options.c +++ b/arogue5/options.c @@ -17,6 +17,7 @@ #include "curses.h" #include #include +#include #include "rogue.h" #define NUM_OPTS (sizeof optlist / sizeof (OPTION)) @@ -91,7 +92,7 @@ int get_restr(char *optstr, WINDOW *win) /* For the score file, which must be opened. */ int get_score(char *optstr, WINDOW *win) { - char old_score_file[LINELEN]; + char old_score_file[PATH_MAX]; int status; if (use_savedir) diff --git a/arogue5/rogue.c b/arogue5/rogue.c index cbdc399..100c6a7 100644 --- a/arogue5/rogue.c +++ b/arogue5/rogue.c @@ -13,6 +13,7 @@ */ #include +#include #include "curses.h" #include "rogue.h" @@ -85,7 +86,7 @@ char *ws_guess[MAXSTICKS]; /* Players guess at what wand is */ char *m_guess[MAXMM]; /* Players guess at what MM is */ char *ws_type[MAXSTICKS]; /* Is it a wand or a staff */ char file_name[256]; /* Save file name */ -char score_file[LINELEN]; /* Score file name */ +char score_file[PATH_MAX]; /* Score file name */ char home[LINELEN]; /* User's home directory */ WINDOW *cw; /* Window that the player sees */ WINDOW *hw; /* Used for the help command */ diff --git a/arogue7/main.c b/arogue7/main.c index 21c9768..e20d566 100644 --- a/arogue7/main.c +++ b/arogue7/main.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #ifdef BSD #include @@ -59,6 +60,7 @@ main(int argc, char *argv[], char *envp[]) */ strncpy(home, md_gethomedir(), LINELEN); + home[LINELEN-1] = '\0'; /* Get default save file */ strcpy(file_name, home); @@ -66,8 +68,8 @@ main(int argc, char *argv[], char *envp[]) /* Get default score file */ #ifdef SCOREFILE - strncpy(score_file, SCOREFILE, LINELEN); - score_file[LINELEN-1] = '\0'; + strncpy(score_file, SCOREFILE, PATH_MAX); + score_file[PATH_MAX-1] = '\0'; #else strcpy(score_file, md_getroguedir()); diff --git a/arogue7/mdport.c b/arogue7/mdport.c index 2deef49..332acfd 100644 --- a/arogue7/mdport.c +++ b/arogue7/mdport.c @@ -421,7 +421,7 @@ directory_exists(char *dirname) char * md_getroguedir(void) { - static char path[1024]; + static char path[PATH_MAX-20]; char *end,*home; if ( (home = getenv("ROGUEHOME")) != NULL) @@ -430,13 +430,16 @@ md_getroguedir(void) { strncpy(path, home, PATH_MAX - 20); - end = &path[strlen(path)-1]; + if (path[PATH_MAX-21] == '\0') + { + end = &path[strlen(path)-1]; - while( (end >= path) && ((*end == '/') || (*end == '\\'))) - *end-- = '\0'; + while( (end >= path) && ((*end == '/') || (*end == '\\'))) + *end-- = '\0'; - if (directory_exists(path)) - return(path); + if (directory_exists(path)) + return(path); + } } } diff --git a/arogue7/options.c b/arogue7/options.c index d22dc92..48235ea 100644 --- a/arogue7/options.c +++ b/arogue7/options.c @@ -21,6 +21,7 @@ #include "curses.h" #include +#include #include #include "rogue.h" @@ -491,7 +492,7 @@ get_str_prot(char *opt, WINDOW *win) int get_score(char *optstr, WINDOW *win) { - char old_score_file[LINELEN]; + char old_score_file[PATH_MAX]; int status; if (use_savedir) diff --git a/arogue7/rogue.c b/arogue7/rogue.c index 121d363..b2456ce 100644 --- a/arogue7/rogue.c +++ b/arogue7/rogue.c @@ -13,6 +13,7 @@ */ #include +#include #include "curses.h" #include "rogue.h" #ifdef PC7300 @@ -102,7 +103,7 @@ char *ws_guess[MAXSTICKS]; /* Players guess at what wand is */ char *m_guess[MAXMM]; /* Players guess at what MM is */ char *ws_type[MAXSTICKS]; /* Is it a wand or a staff */ char file_name[LINELEN]; /* Save file name */ -char score_file[LINELEN]; /* Score file name */ +char score_file[PATH_MAX]; /* Score file name */ char home[LINELEN]; /* User's home directory */ WINDOW *cw; /* Window that the player sees */ WINDOW *hw; /* Used for the help command */ diff --git a/urogue/mdport.c b/urogue/mdport.c index 056643f..e28c554 100644 --- a/urogue/mdport.c +++ b/urogue/mdport.c @@ -401,54 +401,6 @@ md_shellescape() #endif } -int -directory_exists(char *dirname) -{ - struct stat sb; - - if (stat(dirname, &sb) == 0) /* path exists */ - return (sb.st_mode & S_IFDIR); - - return(0); -} - -char * -md_getroguedir() -{ - static char path[1024]; - char *end,*home; - - if ( (home = getenv("ROGUEHOME")) != NULL) - { - if (*home) - { - strncpy(path, home, PATH_MAX - 20); - - end = &path[strlen(path)-1]; - - while( (end >= path) && ((*end == '/') || (*end == '\\'))) - *end-- = '\0'; - - if (directory_exists(path)) - return(path); - } - } - - if (directory_exists("/var/games/roguelike")) - return("/var/games/roguelike"); - if (directory_exists("/var/lib/roguelike")) - return("/var/lib/roguelike"); - if (directory_exists("/var/roguelike")) - return("/var/roguelike"); - if (directory_exists("/usr/games/lib")) - return("/usr/games/lib"); - if (directory_exists("/games/roguelik")) - return("/games/roguelik"); - if (directory_exists(md_gethomedir())) - return(md_gethomedir()); - return(""); -} - char * md_getrealname(int uid) { diff --git a/xrogue/main.c b/xrogue/main.c index e0e1527..2e251f8 100644 --- a/xrogue/main.c +++ b/xrogue/main.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include "mach_dep.h" @@ -44,6 +45,7 @@ main(int argc, char *argv[], char *envp[]) */ strncpy(home, md_gethomedir(), LINELEN); + home[LINELEN-1] = '\0'; /* Get default save file */ strcpy(file_name, home); @@ -51,8 +53,8 @@ main(int argc, char *argv[], char *envp[]) /* Get default score file */ #ifdef SCOREFILE - strncpy(score_file, SCOREFILE, LINELEN); - score_file[LINELEN-1] = '\0'; + strncpy(score_file, SCOREFILE, PATH_MAX); + score_file[PATH_MAX-1] = '\0'; #else strcpy(score_file, md_getroguedir()); diff --git a/xrogue/options.c b/xrogue/options.c index f8a2a06..bbd89af 100644 --- a/xrogue/options.c +++ b/xrogue/options.c @@ -24,6 +24,7 @@ #include #include #include +#include #include "rogue.h" #define NUM_OPTS (sizeof optlist / sizeof (OPTION)) @@ -524,7 +525,7 @@ get_str_prot(char *opt, WINDOW *win) int get_score(char *optstr, WINDOW *win) { - char old_score_file[LINELEN]; + char old_score_file[PATH_MAX]; int status; if (use_savedir) diff --git a/xrogue/rogue.c b/xrogue/rogue.c index 81fe412..82c40da 100644 --- a/xrogue/rogue.c +++ b/xrogue/rogue.c @@ -18,6 +18,7 @@ #include #include +#include #include "rogue.h" /* @@ -90,7 +91,7 @@ char *ws_guess[MAXSTICKS]; /* Players guess at what wand is */ char *m_guess[MAXMM]; /* Players guess at what MM is */ char *ws_type[MAXSTICKS]; /* Is it a wand or a staff */ char file_name[LINELEN]; /* Save file name */ -char score_file[LINELEN]; /* Score file name */ +char score_file[PATH_MAX]; /* Score file name */ char home[LINELEN]; /* User's home directory */ WINDOW *cw; /* Window that the player sees */ WINDOW *hw; /* Used for the help command */ diff --git a/xrogue/state.c b/xrogue/state.c index 68aee34..da0d2e2 100644 --- a/xrogue/state.c +++ b/xrogue/state.c @@ -3301,7 +3301,7 @@ directory_exists(char *dirname) char * md_getroguedir(void) { - static char path[1024]; + static char path[PATH_MAX-20]; char *end,*home; if ( (home = getenv("ROGUEHOME")) != NULL) @@ -3310,14 +3310,17 @@ md_getroguedir(void) { strncpy(path, home, PATH_MAX - 20); - end = &path[strlen(path)-1]; + if (path[PATH_MAX-21] == '\0') + { + end = &path[strlen(path)-1]; - while( (end >= path) && ((*end == '/') || (*end == '\\'))) - *end-- = '\0'; + while( (end >= path) && ((*end == '/') || (*end == '\\'))) + *end-- = '\0'; - if (directory_exists(path)) - return(path); + if (directory_exists(path)) + return(path); + } } } From 06cad9ee1e438c076b15c7fe1ba8a5bae0aad261 Mon Sep 17 00:00:00 2001 From: "John \"Elwin\" Edwards" Date: Tue, 4 May 2021 21:03:47 -0400 Subject: [PATCH 04/10] Fix one more batch of compiler warnings. A few of these were potential bugs. --- arogue5/monsters.c | 4 ++-- arogue5/rogue.h | 2 +- arogue5/weapons.c | 2 +- arogue7/monsters.c | 4 ++-- arogue7/move.c | 6 ++++-- arogue7/rogue.h | 2 +- arogue7/weapons.c | 2 +- srogue/monsters.c | 8 ++++---- srogue/rogue.ext | 4 ++-- srogue/sticks.c | 9 +++++---- urogue/monsters.c | 6 +++--- xrogue/monsters.c | 4 ++-- xrogue/rogue.h | 2 +- xrogue/weapons.c | 2 +- 14 files changed, 30 insertions(+), 27 deletions(-) diff --git a/arogue5/monsters.c b/arogue5/monsters.c index e6aa0f7..33427d4 100644 --- a/arogue5/monsters.c +++ b/arogue5/monsters.c @@ -770,12 +770,12 @@ wake_monster(int y, int x) /* * Every time he sees mean monster, it might start chasing him */ - if (on(*tp, ISMEAN) && + if ((on(*tp, ISMEAN) && off(*tp, ISHELD) && off(*tp, ISRUN) && rnd(100) > 33 && (!is_stealth(&player) || (on(*tp, ISUNIQUE) && rnd(100) > 95)) && - (off(player, ISINVIS) || on(*tp, CANSEE)) || + (off(player, ISINVIS) || on(*tp, CANSEE))) || (trp != NULL && (trp->r_flags & ISTREAS))) { tp->t_dest = &hero; turn_on(*tp, ISRUN); diff --git a/arogue5/rogue.h b/arogue5/rogue.h index b81d97a..b29d101 100644 --- a/arogue5/rogue.h +++ b/arogue5/rogue.h @@ -1046,7 +1046,7 @@ void init_player(void); void init_stones(void); void init_terrain(void); void init_things(void); -void init_weapon(struct object *weap, char type); +void init_weapon(struct object *weap, int type); char *inv_name(struct object *obj, bool drop); bool inventory(struct linked_list *list, int type); bool is_current(struct object *obj); diff --git a/arogue5/weapons.c b/arogue5/weapons.c index 706cd1a..0f414b9 100644 --- a/arogue5/weapons.c +++ b/arogue5/weapons.c @@ -140,7 +140,7 @@ hit_monster(int y, int x, struct object *obj, struct thing *tp) */ void -init_weapon(struct object *weap, char type) +init_weapon(struct object *weap, int type) { register struct init_weps *iwp; diff --git a/arogue7/monsters.c b/arogue7/monsters.c index a574b3e..859f8cf 100644 --- a/arogue7/monsters.c +++ b/arogue7/monsters.c @@ -594,12 +594,12 @@ wake_monster(int y, int x) /* * Every time he sees mean monster, it might start chasing him */ - if (on(*tp, ISMEAN) && + if ((on(*tp, ISMEAN) && off(*tp, ISHELD) && off(*tp, ISRUN) && rnd(100) > 33 && (!is_stealth(&player) || (on(*tp, ISUNIQUE) && rnd(100) > 50)) && - (off(player, ISINVIS) || on(*tp, CANSEE)) || + (off(player, ISINVIS) || on(*tp, CANSEE))) || (trp != NULL && (trp->r_flags & ISTREAS))) { runto(tp, &hero); } diff --git a/arogue7/move.c b/arogue7/move.c index c9ff5e3..5854970 100644 --- a/arogue7/move.c +++ b/arogue7/move.c @@ -132,7 +132,8 @@ be_trapped(struct thing *th, coord *tc) /* Make sure we were not chasing a monster here */ th->t_dest = &hero; - if (on(*th, ISFRIENDLY), turn_off(*th, ISFLEE)); + if (on(*th, ISFRIENDLY)) + turn_off(*th, ISFLEE); } } when BEARTRAP: @@ -406,7 +407,8 @@ be_trapped(struct thing *th, coord *tc) /* Make sure we were not chasing a monster here */ th->t_dest = &hero; - if (on(*th, ISFRIENDLY), turn_off(*th, ISFLEE)); + if (on(*th, ISFRIENDLY)) + turn_off(*th, ISFLEE); } else killed(mitem, FALSE, FALSE, FALSE); diff --git a/arogue7/rogue.h b/arogue7/rogue.h index c4b6241..f7db880 100644 --- a/arogue7/rogue.h +++ b/arogue7/rogue.h @@ -1249,7 +1249,7 @@ void init_player(void); void init_stones(void); void init_terrain(void); void init_things(void); -void init_weapon(struct object *weap, char type); +void init_weapon(struct object *weap, int type); char *inv_name(struct object *obj, bool drop); bool inventory(struct linked_list *list, int type); bool is_current(struct object *obj); diff --git a/arogue7/weapons.c b/arogue7/weapons.c index 4bb21ba..f4c621c 100644 --- a/arogue7/weapons.c +++ b/arogue7/weapons.c @@ -197,7 +197,7 @@ hit_monster(int y, int x, struct object *obj, struct thing *tp) */ void -init_weapon(struct object *weap, char type) +init_weapon(struct object *weap, int type) { register struct init_weps *iwp; diff --git a/srogue/monsters.c b/srogue/monsters.c index 1fca900..449f6ef 100644 --- a/srogue/monsters.c +++ b/srogue/monsters.c @@ -24,7 +24,7 @@ * Pick a monster to show up. The lower the level, * the meaner the monster. */ -char +int rnd_mon(bool wander, bool baddie) { /* baddie; TRUE when from a polymorph stick */ @@ -85,7 +85,7 @@ lev_mon(void) * Pick a new monster and add it to the list */ struct linked_list * -new_monster(char type, struct coord *cp, bool treas) +new_monster(int indx, struct coord *cp, bool treas) { reg struct linked_list *item; reg struct thing *tp; @@ -97,9 +97,9 @@ new_monster(char type, struct coord *cp, bool treas) attach(mlist, item); tp = THINGPTR(item); st = &tp->t_stats; - mp = &monsters[type]; /* point to this monsters structure */ + mp = &monsters[indx]; /* point to this monsters structure */ tp->t_type = mp->m_show; - tp->t_indx = type; + tp->t_indx = indx; tp->t_pos = *cp; tp->t_room = roomin(cp); tp->t_oldch = mvwinch(cw, cp->y, cp->x) & A_CHARTEXT; diff --git a/srogue/rogue.ext b/srogue/rogue.ext index 86ee05b..f58c618 100644 --- a/srogue/rogue.ext +++ b/srogue/rogue.ext @@ -154,7 +154,7 @@ void msg(char *fmt, ...); char *new(int size); struct linked_list *new_item(int size); void new_level(int ltype); -struct linked_list *new_monster(char type, struct coord *cp, bool treas); +struct linked_list *new_monster(int indx, struct coord *cp, bool treas); struct linked_list *new_thing(bool treas, int type, int which); void nohaste(int fromfuse); void noteth(int fromfuse); @@ -193,7 +193,7 @@ void ring_on(void); void ringabil(void); int ringex(int rtype); int rnd(int range); -char rnd_mon(bool wander, bool baddie); +int rnd_mon(bool wander, bool baddie); struct coord *rnd_pos(struct room *rp); int rnd_room(void); struct coord *rndmove(struct thing *who); diff --git a/srogue/sticks.c b/srogue/sticks.c index 9b7d72f..3159fb0 100644 --- a/srogue/sticks.c +++ b/srogue/sticks.c @@ -230,19 +230,20 @@ do_zap(bool gotdir) tp = THINGPTR(item); omonst = tp->t_indx; if (wh == WS_POLYM && !curse) { + int newmonst; detach(mlist, item); discard(item); oldch = tp->t_oldch; delta.y = y; delta.x = x; - monster = rnd_mon(FALSE, TRUE); - item = new_monster(monster, &delta, FALSE); + newmonst = rnd_mon(FALSE, TRUE); + item = new_monster(newmonst, &delta, FALSE); if (!(tp->t_flags & ISRUN)) runto(&delta, &hero); if (isalpha(mvwinch(cw, y, x))) - mvwaddch(cw, y, x, monsters[monster].m_show); + mvwaddch(cw, y, x, monsters[newmonst].m_show); tp->t_oldch = oldch; - ws_know[WS_POLYM] |= (monster != omonst); + ws_know[WS_POLYM] |= (newmonst != omonst); } else if (wh == WS_MINVIS && !bless) { tp->t_flags |= ISINVIS; diff --git a/urogue/monsters.c b/urogue/monsters.c index 68f1b8a..497d882 100644 --- a/urogue/monsters.c +++ b/urogue/monsters.c @@ -955,9 +955,9 @@ wake_monster(int y, int x) */ if (off(player, CANTRUESEE) && - on(*tp, ISINWALL) || on(*tp, CANSURPRISE) || - (on(*tp, ISSHADOW) && rnd(100) < 80) || - (on(*tp, ISINVIS) && off(player, CANSEE))) + (on(*tp, ISINWALL) || on(*tp, CANSURPRISE) || + (on(*tp, ISSHADOW) && rnd(100) < 80) || + (on(*tp, ISINVIS) && off(player, CANSEE)))) { /* TODO: incomplete - need to finish logic diff --git a/xrogue/monsters.c b/xrogue/monsters.c index 030ff71..34f0815 100644 --- a/xrogue/monsters.c +++ b/xrogue/monsters.c @@ -630,12 +630,12 @@ wake_monster(int y, int x) /* * Every time he sees mean monster, it might start chasing him */ - if (on(*tp, ISMEAN) && + if ((on(*tp, ISMEAN) && off(*tp, ISHELD) && off(*tp, ISRUN) && rnd(100) > 35 && (!is_stealth(&player) || (on(*tp, ISUNIQUE) && rnd(100) > 35)) && - (off(player, ISINVIS) || on(*tp, CANSEE)) || + (off(player, ISINVIS) || on(*tp, CANSEE))) || (trp != NULL && (trp->r_flags & ISTREAS))) { runto(tp, &hero); } diff --git a/xrogue/rogue.h b/xrogue/rogue.h index 0230d59..107fd7b 100644 --- a/xrogue/rogue.h +++ b/xrogue/rogue.h @@ -1347,7 +1347,7 @@ void init_player(void); void init_stones(void); void init_terrain(void); void init_things(void); -void init_weapon(struct object *weap, char type); +void init_weapon(struct object *weap, int type); char *inv_name(struct object *obj, bool drop); bool inventory(struct linked_list *list, int type); bool invisible(struct thing *monst); diff --git a/xrogue/weapons.c b/xrogue/weapons.c index ef54db1..a192fd6 100644 --- a/xrogue/weapons.c +++ b/xrogue/weapons.c @@ -198,7 +198,7 @@ hit_monster(int y, int x, struct object *obj, struct thing *tp) */ void -init_weapon(struct object *weap, char type) +init_weapon(struct object *weap, int type) { register struct init_weps *iwp; From 6a654fbe6932b77d0ac5b9e9d8284d6b46108d81 Mon Sep 17 00:00:00 2001 From: "John \"Elwin\" Edwards" Date: Tue, 11 May 2021 22:30:03 -0400 Subject: [PATCH 05/10] Update the Autoconf files. These are mostly automatic updates for obsolete macros. --- arogue5/acinclude.m4 | 32 ++++++----------------- arogue5/configure.ac | 24 ++++++++---------- arogue7/acinclude.m4 | 32 ++++++----------------- arogue7/configure.ac | 21 ++++++++-------- install-sh | 60 ++++++++++++++++++++++++++++++++------------ rogue3/acinclude.m4 | 32 ++++++----------------- rogue3/configure.ac | 23 ++++++++--------- rogue4/acinclude.m4 | 32 ++++++----------------- rogue4/configure.ac | 25 +++++++++--------- rogue5/acinclude.m4 | 32 ++++++----------------- rogue5/configure.ac | 35 +++++++++++++------------- srogue/acinclude.m4 | 32 ++++++----------------- srogue/configure.ac | 17 ++++++------- urogue/acinclude.m4 | 32 ++++++----------------- urogue/configure.ac | 21 ++++++++-------- xrogue/acinclude.m4 | 32 ++++++----------------- xrogue/configure.ac | 19 +++++++------- 17 files changed, 187 insertions(+), 314 deletions(-) diff --git a/arogue5/acinclude.m4 b/arogue5/acinclude.m4 index 76a6fdd..d89e89b 100644 --- a/arogue5/acinclude.m4 +++ b/arogue5/acinclude.m4 @@ -6,14 +6,10 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working curses], mp_cv_curses, [LIBS="$LIBS -lcurses" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_curses=yes, mp_cv_curses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_curses=yes],[mp_cv_curses=no])]) if test "$mp_cv_curses" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) - #AC_DEFINE(HAVE_CURSES_H) CURSES_LIB="-lcurses" fi fi @@ -21,10 +17,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working ncurses], mp_cv_ncurses, [LIBS="$mp_save_LIBS -lncurses" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_ncurses=yes, mp_cv_ncurses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_ncurses=yes],[mp_cv_ncurses=no])]) if test "$mp_cv_ncurses" = yes then AC_DEFINE(HAVE_NCURSES_H, 1, [Define to 1 if libncurses is requested]) @@ -35,10 +28,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working pdcurses], mp_cv_pdcurses, [LIBS="$mp_save_LIBS -lpdcurses" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_pdcurses=yes, mp_cv_pdcurses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_pdcurses=yes],[mp_cv_pdcurses=no])]) if test "$mp_cv_pdcurses" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) @@ -49,10 +39,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working pdcur], mp_cv_pdcur, [LIBS="$mp_save_LIBS -lpdcur" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_pdcur=yes, mp_cv_pdcur=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_pdcur=yes],[mp_cv_pdcur=no])]) if test "$mp_cv_pdcur" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) @@ -63,10 +50,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working peer pdcurses], mp_cv_lpdcurses, [LIBS="$mp_save_LIBS ../pdcurses/pdcurses.a" - AC_TRY_LINK( - [#include "../pdcurses/curses.h"], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_lpdcurses=yes, mp_cv_lpdcurses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "../pdcurses/curses.h"]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_lpdcurses=yes],[mp_cv_lpdcurses=no])]) if test "$mp_cv_lpdcurses" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) @@ -76,12 +60,10 @@ AC_DEFUN([MP_WITH_CURSES], fi AC_CACHE_CHECK([for ESCDELAY variable], [mc_cv_ncurses_escdelay], - [AC_TRY_LINK([], [ + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ extern int ESCDELAY; ESCDELAY = 0; - ], - [mc_cv_ncurses_escdelay=yes], - [mc_cv_ncurses_escdelay=no]) + ]])],[mc_cv_ncurses_escdelay=yes],[mc_cv_ncurses_escdelay=no]) ]) if test "$mc_cv_ncurses_escdelay" = yes; then AC_DEFINE(HAVE_ESCDELAY, 1, diff --git a/arogue5/configure.ac b/arogue5/configure.ac index 8a376fd..b54cf9f 100644 --- a/arogue5/configure.ac +++ b/arogue5/configure.ac @@ -1,10 +1,9 @@ # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. -AC_PREREQ(2.56) -AC_INIT([ARogue],[5.8.2], [yendor@rogueforge.net], [arogue5]) +AC_PREREQ([2.69]) +AC_INIT([Advanced Rogue],[5.8.2],[elwin@sdf.org],[arogue5]) AC_CONFIG_HEADERS([config.h]) -# May not be needed for the documentation AC_CONFIG_FILES([Makefile]) # Checks for programs. @@ -23,17 +22,16 @@ AC_FUNC_FORK AC_PROG_GCC_TRADITIONAL AC_FUNC_LSTAT AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK -AC_TYPE_SIGNAL AC_FUNC_STAT AC_FUNC_VPRINTF AC_CHECK_FUNCS([erasechar killchar alarm getpass memset setenv strchr nlist _spawnl spawnl getpwuid loadav getloadavg strerror setgid setuid getuid getgid]) AC_PROG_INSTALL -AC_ARG_WITH(program-name, AC_HELP_STRING([--with-program-name=NAME],[alternate executable name]),[progname="$withval" ], [progname="arogue5"] ) +AC_ARG_WITH(program-name, AS_HELP_STRING([--with-program-name=NAME],[alternate executable name]),[progname="$withval" ], [progname="arogue5"] ) PROGRAM=$progname AC_SUBST(PROGRAM) -AC_ARG_ENABLE(setgid, AC_HELP_STRING([--enable-setgid=NAME],[install executable as setgid with group ownership of NAME @<:@default=no@:>@]),[],[]) +AC_ARG_ENABLE(setgid, AS_HELP_STRING([--enable-setgid=NAME],[install executable as setgid with group ownership of NAME @<:@default=no@:>@]),[],[]) AC_MSG_CHECKING([if using setgid execute bit]) if test "x$enable_setgid" = "xno" ; then GROUPOWNER= @@ -54,7 +52,7 @@ fi AC_SUBST(GROUPOWNER) -AC_ARG_ENABLE([scorefile],[AC_HELP_STRING([--enable-scorefile=SCOREFILE], [enable scoreboard with given filename])],[],[]) +AC_ARG_ENABLE([scorefile],[AS_HELP_STRING([--enable-scorefile=SCOREFILE],[enable scoreboard with given filename])],[],[]) AC_MSG_CHECKING([for scoreboard file]) if test "x$enable_scorefile" = "xno" ; then SCOREFILE= @@ -75,7 +73,7 @@ fi AC_SUBST(SCOREFILE) -AC_ARG_ENABLE([logfile],[AC_HELP_STRING([--enable-logfile=LOGFILE], [enable logfile with given filename])],[],[]) +AC_ARG_ENABLE([logfile],[AS_HELP_STRING([--enable-logfile=LOGFILE],[enable logfile with given filename])],[],[]) AC_MSG_CHECKING([for log file]) if test "x$enable_logfile" = "xno" ; then LOGFILE= @@ -96,7 +94,7 @@ fi AC_SUBST(LOGFILE) -AC_ARG_ENABLE([savedir],[AC_HELP_STRING([--enable-savedir=SAVEDIR], [enable systemwide location for saved games])],[],[enable_savedir="no"]) +AC_ARG_ENABLE([savedir],[AS_HELP_STRING([--enable-savedir=SAVEDIR],[enable systemwide location for saved games])],[],[enable_savedir="no"]) AC_MSG_CHECKING([for save directory]) if test "x$enable_savedir" = "xno" ; then SAVEDIR= @@ -119,7 +117,7 @@ fi AC_SUBST(SAVEDIR) -AC_ARG_ENABLE([wizardmode],[AC_HELP_STRING([--enable-wizardmode], [enable availability of wizard mode @<:@default=no@:>@])],[],[]) +AC_ARG_ENABLE([wizardmode],[AS_HELP_STRING([--enable-wizardmode],[enable availability of wizard mode @<:@default=no@:>@])],[],[]) AC_MSG_CHECKING([if wizard mode is enabled]) if test "x$enable_wizardmode" = "xno" ; then AC_MSG_RESULT([no]) @@ -130,7 +128,7 @@ AC_DEFINE([WIZARD], [], [Define to include wizard mode]) AC_MSG_RESULT([yes]) fi -AC_ARG_ENABLE([limitscore],[AC_HELP_STRING([--enable-limitscore], [limit scores to one per class per uid @<:@default=no@:>@])],[],[]) +AC_ARG_ENABLE([limitscore],[AS_HELP_STRING([--enable-limitscore],[limit scores to one per class per uid @<:@default=no@:>@])],[],[]) AC_MSG_CHECKING([if limiting scores]) if test "x$enable_limitscore" = "xno" ; then AC_MSG_RESULT([no]) @@ -141,7 +139,7 @@ AC_DEFINE([LIMITSCORE], [], [Define to limit scores to one per class per uid]) AC_MSG_RESULT([yes]) fi -AC_ARG_ENABLE([maxload],[AC_HELP_STRING([--enable-maxload], [enable maxload @<:@default=no@:>@])],[],[]) +AC_ARG_ENABLE([maxload],[AS_HELP_STRING([--enable-maxload],[enable maxload @<:@default=no@:>@])],[],[]) AC_MSG_CHECKING([runtime execution limit (maximum system load average)]) if test "x$enable_maxload" = "xyes" ; then AC_DEFINE([MAXLOAD], [100], [Define if maxload feature should be enabled]) @@ -155,7 +153,7 @@ AC_DEFINE_UNQUOTED([MAXLOAD], [$enable_maxload], [Define if maxload feature shou AC_MSG_RESULT([$enable_maxload]) fi -AC_ARG_ENABLE([maxusers],[AC_HELP_STRING([--enable-maxusers], [enable maxuser @<:@default=no@:>@])],[],[]) +AC_ARG_ENABLE([maxusers],[AS_HELP_STRING([--enable-maxusers],[enable maxuser @<:@default=no@:>@])],[],[]) AC_MSG_CHECKING([runtime execution limit (maximum online system users)]) if test "x$enable_maxusers" = "xyes" ; then AC_DEFINE([MAXUSERS], [100], [Define if maxusers feature should be enabled]) diff --git a/arogue7/acinclude.m4 b/arogue7/acinclude.m4 index 76a6fdd..d89e89b 100644 --- a/arogue7/acinclude.m4 +++ b/arogue7/acinclude.m4 @@ -6,14 +6,10 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working curses], mp_cv_curses, [LIBS="$LIBS -lcurses" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_curses=yes, mp_cv_curses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_curses=yes],[mp_cv_curses=no])]) if test "$mp_cv_curses" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) - #AC_DEFINE(HAVE_CURSES_H) CURSES_LIB="-lcurses" fi fi @@ -21,10 +17,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working ncurses], mp_cv_ncurses, [LIBS="$mp_save_LIBS -lncurses" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_ncurses=yes, mp_cv_ncurses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_ncurses=yes],[mp_cv_ncurses=no])]) if test "$mp_cv_ncurses" = yes then AC_DEFINE(HAVE_NCURSES_H, 1, [Define to 1 if libncurses is requested]) @@ -35,10 +28,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working pdcurses], mp_cv_pdcurses, [LIBS="$mp_save_LIBS -lpdcurses" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_pdcurses=yes, mp_cv_pdcurses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_pdcurses=yes],[mp_cv_pdcurses=no])]) if test "$mp_cv_pdcurses" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) @@ -49,10 +39,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working pdcur], mp_cv_pdcur, [LIBS="$mp_save_LIBS -lpdcur" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_pdcur=yes, mp_cv_pdcur=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_pdcur=yes],[mp_cv_pdcur=no])]) if test "$mp_cv_pdcur" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) @@ -63,10 +50,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working peer pdcurses], mp_cv_lpdcurses, [LIBS="$mp_save_LIBS ../pdcurses/pdcurses.a" - AC_TRY_LINK( - [#include "../pdcurses/curses.h"], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_lpdcurses=yes, mp_cv_lpdcurses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "../pdcurses/curses.h"]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_lpdcurses=yes],[mp_cv_lpdcurses=no])]) if test "$mp_cv_lpdcurses" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) @@ -76,12 +60,10 @@ AC_DEFUN([MP_WITH_CURSES], fi AC_CACHE_CHECK([for ESCDELAY variable], [mc_cv_ncurses_escdelay], - [AC_TRY_LINK([], [ + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ extern int ESCDELAY; ESCDELAY = 0; - ], - [mc_cv_ncurses_escdelay=yes], - [mc_cv_ncurses_escdelay=no]) + ]])],[mc_cv_ncurses_escdelay=yes],[mc_cv_ncurses_escdelay=no]) ]) if test "$mc_cv_ncurses_escdelay" = yes; then AC_DEFINE(HAVE_ESCDELAY, 1, diff --git a/arogue7/configure.ac b/arogue7/configure.ac index 2f4fe76..cdb7af5 100644 --- a/arogue7/configure.ac +++ b/arogue7/configure.ac @@ -1,8 +1,8 @@ # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. -AC_PREREQ(2.56) -AC_INIT([ARogue],[7.7.1], [yendor@rogueforge.net], [arogue7]) +AC_PREREQ([2.69]) +AC_INIT([Advanced Rogue],[7.7.1],[elwin@sdf.org],[arogue7]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([Makefile]) @@ -21,7 +21,6 @@ AC_STRUCT_TM AC_FUNC_FORK AC_PROG_GCC_TRADITIONAL AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK -AC_TYPE_SIGNAL AC_CHECK_FUNCS([erasechar killchar alarm getpass memset setenv strchr _spawnl spawnl getpwuid loadav strerror setgid setuid getuid getgid]) AC_PROG_INSTALL @@ -48,11 +47,11 @@ AC_SUBST(DOCS_GROFF) AC_SUBST(DOCS_NROFF) AC_SUBST(DOCS_NONE) -AC_ARG_WITH(program-name, AC_HELP_STRING([--with-program-name=NAME],[alternate executable name]),[progname="$withval" ], [progname="arogue7"] ) +AC_ARG_WITH(program-name, AS_HELP_STRING([--with-program-name=NAME],[alternate executable name]),[progname="$withval" ], [progname="arogue7"] ) PROGRAM=$progname AC_SUBST(PROGRAM) -AC_ARG_ENABLE(setgid, AC_HELP_STRING([--enable-setgid=NAME],[install executable as setgid with group ownership of NAME @<:@default=no@:>@]),[],[]) +AC_ARG_ENABLE(setgid, AS_HELP_STRING([--enable-setgid=NAME],[install executable as setgid with group ownership of NAME @<:@default=no@:>@]),[],[]) AC_MSG_CHECKING([if using setgid execute bit]) if test "x$enable_setgid" = "xno" ; then GROUPOWNER= @@ -73,7 +72,7 @@ fi AC_SUBST(GROUPOWNER) -AC_ARG_ENABLE([scorefile],[AC_HELP_STRING([--enable-scorefile=SCOREFILE], [enable scoreboard with given filename])],[],[]) +AC_ARG_ENABLE([scorefile],[AS_HELP_STRING([--enable-scorefile=SCOREFILE],[enable scoreboard with given filename])],[],[]) AC_MSG_CHECKING([for scoreboard file]) if test "x$enable_scorefile" = "xno" ; then SCOREFILE= @@ -94,7 +93,7 @@ fi AC_SUBST(SCOREFILE) -AC_ARG_ENABLE([logfile],[AC_HELP_STRING([--enable-logfile=LOGFILE], [enable logfile with given filename])],[],[]) +AC_ARG_ENABLE([logfile],[AS_HELP_STRING([--enable-logfile=LOGFILE],[enable logfile with given filename])],[],[]) AC_MSG_CHECKING([for log file]) if test "x$enable_logfile" = "xno" ; then LOGFILE= @@ -115,7 +114,7 @@ fi AC_SUBST(LOGFILE) -AC_ARG_ENABLE([savedir],[AC_HELP_STRING([--enable-savedir=SAVEDIR], [enable systemwide location for saved games])],[],[enable_savedir="no"]) +AC_ARG_ENABLE([savedir],[AS_HELP_STRING([--enable-savedir=SAVEDIR],[enable systemwide location for saved games])],[],[enable_savedir="no"]) AC_MSG_CHECKING([for save directory]) if test "x$enable_savedir" = "xno" ; then SAVEDIR= @@ -138,7 +137,7 @@ fi AC_SUBST(SAVEDIR) -AC_ARG_ENABLE([wizardmode],[AC_HELP_STRING([--enable-wizardmode], [enable availability of wizard mode @<:@default=no@:>@])],[],[]) +AC_ARG_ENABLE([wizardmode],[AS_HELP_STRING([--enable-wizardmode],[enable availability of wizard mode @<:@default=no@:>@])],[],[]) AC_MSG_CHECKING([if wizard mode is enabled]) if test "x$enable_wizardmode" = "xno" ; then AC_MSG_RESULT([no]) @@ -149,7 +148,7 @@ AC_DEFINE([WIZARD], [], [Define to include wizard mode]) AC_MSG_RESULT([yes]) fi -AC_ARG_ENABLE([limitscore],[AC_HELP_STRING([--enable-limitscore], [limit scores to one per class per uid @<:@default=no@:>@])],[],[]) +AC_ARG_ENABLE([limitscore],[AS_HELP_STRING([--enable-limitscore],[limit scores to one per class per uid @<:@default=no@:>@])],[],[]) AC_MSG_CHECKING([if limiting scores]) if test "x$enable_limitscore" = "xno" ; then AC_MSG_RESULT([no]) @@ -160,7 +159,7 @@ AC_DEFINE([LIMITSCORE], [], [Define to limit scores to one per class per uid]) AC_MSG_RESULT([yes]) fi -AC_ARG_ENABLE([maxusers],[AC_HELP_STRING([--enable-maxusers], [enable maxuser @<:@default=no@:>@])],[],[]) +AC_ARG_ENABLE([maxusers],[AS_HELP_STRING([--enable-maxusers],[enable maxuser @<:@default=no@:>@])],[],[]) AC_MSG_CHECKING([runtime execution limit (maximum online system users)]) if test "x$enable_maxusers" = "xyes" ; then AC_DEFINE([MAXUSERS], [100], [Define if maxusers feature should be enabled]) diff --git a/install-sh b/install-sh index 0b0fdcb..20d8b2e 100755 --- a/install-sh +++ b/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2013-12-25.23; # UTC +scriptversion=2018-03-11.20; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -271,15 +271,18 @@ do fi dst=$dst_arg - # If destination is a directory, append the input filename; won't work - # if double slashes aren't ignored. + # If destination is a directory, append the input filename. if test -d "$dst"; then if test "$is_target_a_directory" = never; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst - dst=$dstdir/`basename "$src"` + dstbase=`basename "$src"` + case $dst in + */) dst=$dst$dstbase;; + *) dst=$dst/$dstbase;; + esac dstdir_status=0 else dstdir=`dirname "$dst"` @@ -288,6 +291,11 @@ do fi fi + case $dstdir in + */) dstdirslash=$dstdir;; + *) dstdirslash=$dstdir/;; + esac + obsolete_mkdir_used=false if test $dstdir_status != 0; then @@ -324,34 +332,43 @@ do # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) + # Note that $RANDOM variable is not portable (e.g. dash); Use it + # here however when possible just to lower collision chance. tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 + + # Because "mkdir -p" follows existing symlinks and we likely work + # directly in world-writeable /tmp, make sure that the '$tmpdir' + # directory is successfully created first before we actually test + # 'mkdir -p' feature. if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + $mkdirprog $mkdir_mode "$tmpdir" && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` + test_tmpdir="$tmpdir/a" + ls_ld_tmpdir=`ls -ld "$test_tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi - rmdir "$tmpdir/d" "$tmpdir" + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null fi trap '' 0;; esac;; @@ -427,14 +444,25 @@ do else # Make a couple of temp file names in the proper directory. - dsttmp=$dstdir/_inst.$$_ - rmtmp=$dstdir/_rm.$$_ + dsttmp=${dstdirslash}_inst.$$_ + rmtmp=${dstdirslash}_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. - (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + (umask $cp_umask && + { test -z "$stripcmd" || { + # Create $dsttmp read-write so that cp doesn't create it read-only, + # which would cause strip to fail. + if test -z "$doit"; then + : >"$dsttmp" # No need to fork-exec 'touch'. + else + $doit touch "$dsttmp" + fi + } + } && + $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # @@ -493,9 +521,9 @@ do done # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/rogue3/acinclude.m4 b/rogue3/acinclude.m4 index 76a6fdd..d89e89b 100644 --- a/rogue3/acinclude.m4 +++ b/rogue3/acinclude.m4 @@ -6,14 +6,10 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working curses], mp_cv_curses, [LIBS="$LIBS -lcurses" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_curses=yes, mp_cv_curses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_curses=yes],[mp_cv_curses=no])]) if test "$mp_cv_curses" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) - #AC_DEFINE(HAVE_CURSES_H) CURSES_LIB="-lcurses" fi fi @@ -21,10 +17,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working ncurses], mp_cv_ncurses, [LIBS="$mp_save_LIBS -lncurses" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_ncurses=yes, mp_cv_ncurses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_ncurses=yes],[mp_cv_ncurses=no])]) if test "$mp_cv_ncurses" = yes then AC_DEFINE(HAVE_NCURSES_H, 1, [Define to 1 if libncurses is requested]) @@ -35,10 +28,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working pdcurses], mp_cv_pdcurses, [LIBS="$mp_save_LIBS -lpdcurses" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_pdcurses=yes, mp_cv_pdcurses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_pdcurses=yes],[mp_cv_pdcurses=no])]) if test "$mp_cv_pdcurses" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) @@ -49,10 +39,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working pdcur], mp_cv_pdcur, [LIBS="$mp_save_LIBS -lpdcur" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_pdcur=yes, mp_cv_pdcur=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_pdcur=yes],[mp_cv_pdcur=no])]) if test "$mp_cv_pdcur" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) @@ -63,10 +50,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working peer pdcurses], mp_cv_lpdcurses, [LIBS="$mp_save_LIBS ../pdcurses/pdcurses.a" - AC_TRY_LINK( - [#include "../pdcurses/curses.h"], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_lpdcurses=yes, mp_cv_lpdcurses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "../pdcurses/curses.h"]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_lpdcurses=yes],[mp_cv_lpdcurses=no])]) if test "$mp_cv_lpdcurses" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) @@ -76,12 +60,10 @@ AC_DEFUN([MP_WITH_CURSES], fi AC_CACHE_CHECK([for ESCDELAY variable], [mc_cv_ncurses_escdelay], - [AC_TRY_LINK([], [ + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ extern int ESCDELAY; ESCDELAY = 0; - ], - [mc_cv_ncurses_escdelay=yes], - [mc_cv_ncurses_escdelay=no]) + ]])],[mc_cv_ncurses_escdelay=yes],[mc_cv_ncurses_escdelay=no]) ]) if test "$mc_cv_ncurses_escdelay" = yes; then AC_DEFINE(HAVE_ESCDELAY, 1, diff --git a/rogue3/configure.ac b/rogue3/configure.ac index 1f1d6b6..0ae8def 100644 --- a/rogue3/configure.ac +++ b/rogue3/configure.ac @@ -1,8 +1,8 @@ # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. -AC_PREREQ(2.56) -AC_INIT([Rogue],[3.6.4], [yendor@rogueforge.net], [rogue3]) +AC_PREREQ([2.69]) +AC_INIT([Rogue],[3.6.4],[elwin@sdf.org],[rogue3]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([Makefile rogue.6 rogue.r]) @@ -13,8 +13,6 @@ MP_WITH_CURSES # Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS([arpa/inet.h pwd.h errno.h fcntl.h limits.h nlist.h stdlib.h string.h sys/ioctl.h termios.h unistd.h utmp.h utmpx.h term.h ncurses/term.h process.h]) -# WARN: the sources often don't include the headers when needed. That is one -# reason why adding "-Wall" to CFLAGS produces 1246 lines of messages. # Checks for typedefs, structures, and compiler characteristics. AC_TYPE_UID_T @@ -25,7 +23,6 @@ AC_FUNC_FORK AC_PROG_GCC_TRADITIONAL AC_FUNC_LSTAT AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK -AC_TYPE_SIGNAL AC_FUNC_STAT AC_FUNC_VPRINTF AC_CHECK_FUNCS([erasechar killchar alarm getpass memset setenv strchr nlist _spawnl spawnl getpwuid loadav getloadavg strerror setgid setuid getuid getgid]) @@ -55,11 +52,11 @@ AC_SUBST(DOCS_GROFF) AC_SUBST(DOCS_NROFF) AC_SUBST(DOCS_NONE) -AC_ARG_WITH(program-name, AC_HELP_STRING([--with-program-name=NAME],[alternate executable name]),[progname="$withval" ], [progname="rogue3"] ) +AC_ARG_WITH(program-name, AS_HELP_STRING([--with-program-name=NAME],[alternate executable name]),[progname="$withval" ], [progname="rogue3"] ) PROGRAM=$progname AC_SUBST(PROGRAM) -AC_ARG_ENABLE(setgid, AC_HELP_STRING([--enable-setgid=NAME],[install executable as setgid with group ownership of NAME @<:@default=no@:>@]),[],[]) +AC_ARG_ENABLE(setgid, AS_HELP_STRING([--enable-setgid=NAME],[install executable as setgid with group ownership of NAME @<:@default=no@:>@]),[],[]) AC_MSG_CHECKING([if using setgid execute bit]) if test "x$enable_setgid" = "xno" ; then GROUPOWNER= @@ -80,7 +77,7 @@ fi AC_SUBST(GROUPOWNER) -AC_ARG_ENABLE([scorefile],[AC_HELP_STRING([--enable-scorefile=SCOREFILE], [enable scoreboard with given filename])],[],[]) +AC_ARG_ENABLE([scorefile],[AS_HELP_STRING([--enable-scorefile=SCOREFILE],[enable scoreboard with given filename])],[],[]) AC_MSG_CHECKING([for scoreboard file]) if test "x$enable_scorefile" = "xno" ; then SCOREFILE= @@ -101,7 +98,7 @@ fi AC_SUBST(SCOREFILE) -AC_ARG_ENABLE([logfile],[AC_HELP_STRING([--enable-logfile=LOGFILE], [enable logfile with given filename])],[],[]) +AC_ARG_ENABLE([logfile],[AS_HELP_STRING([--enable-logfile=LOGFILE],[enable logfile with given filename])],[],[]) AC_MSG_CHECKING([for log file]) if test "x$enable_logfile" = "xno" ; then LOGFILE= @@ -122,7 +119,7 @@ fi AC_SUBST(LOGFILE) -AC_ARG_ENABLE([savedir],[AC_HELP_STRING([--enable-savedir=SAVEDIR], [enable systemwide location for saved games])],[],[enable_savedir="no"]) +AC_ARG_ENABLE([savedir],[AS_HELP_STRING([--enable-savedir=SAVEDIR],[enable systemwide location for saved games])],[],[enable_savedir="no"]) AC_MSG_CHECKING([for save directory]) if test "x$enable_savedir" = "xno" ; then SAVEDIR= @@ -145,7 +142,7 @@ fi AC_SUBST(SAVEDIR) -AC_ARG_ENABLE([wizardmode],[AC_HELP_STRING([--enable-wizardmode], [enable availability of wizard mode @<:@default=no@:>@])],[],[]) +AC_ARG_ENABLE([wizardmode],[AS_HELP_STRING([--enable-wizardmode],[enable availability of wizard mode @<:@default=no@:>@])],[],[]) AC_MSG_CHECKING([if wizard mode is enabled]) if test "x$enable_wizardmode" = "xno" ; then AC_MSG_RESULT([no]) @@ -156,7 +153,7 @@ AC_DEFINE([WIZARD], [], [Define to include wizard mode]) AC_MSG_RESULT([yes]) fi -AC_ARG_ENABLE([maxload],[AC_HELP_STRING([--enable-maxload], [enable maxload @<:@default=no@:>@])],[],[]) +AC_ARG_ENABLE([maxload],[AS_HELP_STRING([--enable-maxload],[enable maxload @<:@default=no@:>@])],[],[]) AC_MSG_CHECKING([runtime execution limit (maximum system load average)]) if test "x$enable_maxload" = "xyes" ; then AC_DEFINE([MAXLOAD], [100], [Define if maxload feature should be enabled]) @@ -170,7 +167,7 @@ AC_DEFINE_UNQUOTED([MAXLOAD], [$enable_maxload], [Define if maxload feature shou AC_MSG_RESULT([$enable_maxload]) fi -AC_ARG_ENABLE([maxusers],[AC_HELP_STRING([--enable-maxusers], [enable maxuser @<:@default=no@:>@])],[],[]) +AC_ARG_ENABLE([maxusers],[AS_HELP_STRING([--enable-maxusers],[enable maxuser @<:@default=no@:>@])],[],[]) AC_MSG_CHECKING([runtime execution limit (maximum online system users)]) if test "x$enable_maxusers" = "xyes" ; then AC_DEFINE([MAXUSERS], [100], [Define if maxusers feature should be enabled]) diff --git a/rogue4/acinclude.m4 b/rogue4/acinclude.m4 index 76a6fdd..d89e89b 100644 --- a/rogue4/acinclude.m4 +++ b/rogue4/acinclude.m4 @@ -6,14 +6,10 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working curses], mp_cv_curses, [LIBS="$LIBS -lcurses" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_curses=yes, mp_cv_curses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_curses=yes],[mp_cv_curses=no])]) if test "$mp_cv_curses" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) - #AC_DEFINE(HAVE_CURSES_H) CURSES_LIB="-lcurses" fi fi @@ -21,10 +17,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working ncurses], mp_cv_ncurses, [LIBS="$mp_save_LIBS -lncurses" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_ncurses=yes, mp_cv_ncurses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_ncurses=yes],[mp_cv_ncurses=no])]) if test "$mp_cv_ncurses" = yes then AC_DEFINE(HAVE_NCURSES_H, 1, [Define to 1 if libncurses is requested]) @@ -35,10 +28,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working pdcurses], mp_cv_pdcurses, [LIBS="$mp_save_LIBS -lpdcurses" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_pdcurses=yes, mp_cv_pdcurses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_pdcurses=yes],[mp_cv_pdcurses=no])]) if test "$mp_cv_pdcurses" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) @@ -49,10 +39,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working pdcur], mp_cv_pdcur, [LIBS="$mp_save_LIBS -lpdcur" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_pdcur=yes, mp_cv_pdcur=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_pdcur=yes],[mp_cv_pdcur=no])]) if test "$mp_cv_pdcur" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) @@ -63,10 +50,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working peer pdcurses], mp_cv_lpdcurses, [LIBS="$mp_save_LIBS ../pdcurses/pdcurses.a" - AC_TRY_LINK( - [#include "../pdcurses/curses.h"], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_lpdcurses=yes, mp_cv_lpdcurses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "../pdcurses/curses.h"]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_lpdcurses=yes],[mp_cv_lpdcurses=no])]) if test "$mp_cv_lpdcurses" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) @@ -76,12 +60,10 @@ AC_DEFUN([MP_WITH_CURSES], fi AC_CACHE_CHECK([for ESCDELAY variable], [mc_cv_ncurses_escdelay], - [AC_TRY_LINK([], [ + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ extern int ESCDELAY; ESCDELAY = 0; - ], - [mc_cv_ncurses_escdelay=yes], - [mc_cv_ncurses_escdelay=no]) + ]])],[mc_cv_ncurses_escdelay=yes],[mc_cv_ncurses_escdelay=no]) ]) if test "$mc_cv_ncurses_escdelay" = yes; then AC_DEFINE(HAVE_ESCDELAY, 1, diff --git a/rogue4/configure.ac b/rogue4/configure.ac index 2d84772..741fd27 100644 --- a/rogue4/configure.ac +++ b/rogue4/configure.ac @@ -1,8 +1,8 @@ # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. -AC_PREREQ(2.56) -AC_INIT([Rogue],[5.2.2], [yendor@rogueforge.net], [rogue4]) +AC_PREREQ([2.69]) +AC_INIT([Rogue],[5.2.2],[elwin@sdf.org],[rogue4]) AC_CONFIG_SRCDIR([armor.c]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([Makefile rogue.6 rogue.me]) @@ -24,7 +24,6 @@ AC_FUNC_FORK AC_PROG_GCC_TRADITIONAL AC_FUNC_LSTAT AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK -AC_TYPE_SIGNAL AC_FUNC_STAT AC_FUNC_VPRINTF AC_CHECK_FUNCS([erasechar killchar alarm getpass memset setenv strchr nlist _spawnl spawnl getpwuid loadav getloadavg strerror setgid setuid getuid getgid]) @@ -54,11 +53,11 @@ AC_SUBST(DOCS_GROFF) AC_SUBST(DOCS_NROFF) AC_SUBST(DOCS_NONE) -AC_ARG_WITH(program-name, AC_HELP_STRING([--with-program-name=NAME],[alternate executable name]),[progname="$withval" ], [progname="rogue4"] ) +AC_ARG_WITH(program-name, AS_HELP_STRING([--with-program-name=NAME],[alternate executable name]),[progname="$withval" ], [progname="rogue4"] ) PROGRAM=$progname AC_SUBST(PROGRAM) -AC_ARG_ENABLE(setgid, AC_HELP_STRING([--enable-setgid=NAME],[install executable as setgid with group ownership of NAME @<:@default=no@:>@]),[],[]) +AC_ARG_ENABLE(setgid, AS_HELP_STRING([--enable-setgid=NAME],[install executable as setgid with group ownership of NAME @<:@default=no@:>@]),[],[]) AC_MSG_CHECKING([if using setgid execute bit]) if test "x$enable_setgid" = "xno" ; then GROUPOWNER= @@ -79,7 +78,7 @@ fi AC_SUBST(GROUPOWNER) -AC_ARG_ENABLE([scorefile],[AC_HELP_STRING([--enable-scorefile=SCOREFILE], [enable scoreboard with given filename])],[],[]) +AC_ARG_ENABLE([scorefile],[AS_HELP_STRING([--enable-scorefile=SCOREFILE],[enable scoreboard with given filename])],[],[]) AC_MSG_CHECKING([for scoreboard file]) if test "x$enable_scorefile" = "xno" ; then SCOREFILE= @@ -100,7 +99,7 @@ fi AC_SUBST(SCOREFILE) -AC_ARG_ENABLE([logfile],[AC_HELP_STRING([--enable-logfile=LOGFILE], [enable logfile with given filename])],[],[]) +AC_ARG_ENABLE([logfile],[AS_HELP_STRING([--enable-logfile=LOGFILE],[enable logfile with given filename])],[],[]) AC_MSG_CHECKING([for log file]) if test "x$enable_logfile" = "xno" ; then LOGFILE= @@ -121,7 +120,7 @@ fi AC_SUBST(LOGFILE) -AC_ARG_ENABLE([lockfile],[AC_HELP_STRING([--enable-lockfile=LOCKFILE], [enable scoreboard lockfile with given filename])],[],[]) +AC_ARG_ENABLE([lockfile],[AS_HELP_STRING([--enable-lockfile=LOCKFILE],[enable scoreboard lockfile with given filename])],[],[]) AC_MSG_CHECKING([for scoreboard lockfile file]) if test "x$enable_lockfile" = "xno" ; then LOCKFILE= @@ -142,7 +141,7 @@ fi AC_SUBST(LOCKFILE) -AC_ARG_ENABLE([savedir],[AC_HELP_STRING([--enable-savedir=SAVEDIR], [enable systemwide location for saved games])],[],[enable_savedir="no"]) +AC_ARG_ENABLE([savedir],[AS_HELP_STRING([--enable-savedir=SAVEDIR],[enable systemwide location for saved games])],[],[enable_savedir="no"]) AC_MSG_CHECKING([for save directory]) if test "x$enable_savedir" = "xno" ; then SAVEDIR= @@ -165,7 +164,7 @@ fi AC_SUBST(SAVEDIR) -AC_ARG_ENABLE([wizardmode],[AC_HELP_STRING([--enable-wizardmode], [enable availability of wizard mode @<:@default=no@:>@])],[],[]) +AC_ARG_ENABLE([wizardmode],[AS_HELP_STRING([--enable-wizardmode],[enable availability of wizard mode @<:@default=no@:>@])],[],[]) AC_MSG_CHECKING([if wizard mode is enabled]) if test "x$enable_wizardmode" = "xno" ; then AC_MSG_RESULT([no]) @@ -179,7 +178,7 @@ fi AC_MSG_RESULT([yes]) fi -AC_ARG_ENABLE([checktime],[AC_HELP_STRING([--enable-checktime], [enable checktime @<:@default=no@:>@])],[],[]) +AC_ARG_ENABLE([checktime],[AS_HELP_STRING([--enable-checktime],[enable checktime @<:@default=no@:>@])],[],[]) AC_MSG_CHECKING([if checktime is enabled]) if test "x$enable_checktime" = "xyes" ; then AC_DEFINE([CHECKTIME], [1], [Define if checktime feature should be enabled]) @@ -188,7 +187,7 @@ else AC_MSG_RESULT([no]) fi -AC_ARG_ENABLE([maxload],[AC_HELP_STRING([--enable-maxload], [enable maxload @<:@default=no@:>@])],[],[]) +AC_ARG_ENABLE([maxload],[AS_HELP_STRING([--enable-maxload],[enable maxload @<:@default=no@:>@])],[],[]) AC_MSG_CHECKING([runtime execution limit (maximum system load average)]) if test "x$enable_maxload" = "xyes" ; then AC_DEFINE([MAXLOAD], [100], [Define if maxload feature should be enabled]) @@ -202,7 +201,7 @@ AC_DEFINE_UNQUOTED([MAXLOAD], [$enable_maxload], [Define if maxload feature shou AC_MSG_RESULT([$enable_maxload]) fi -AC_ARG_ENABLE([maxusers],[AC_HELP_STRING([--enable-maxusers], [enable maxuser @<:@default=no@:>@])],[],[]) +AC_ARG_ENABLE([maxusers],[AS_HELP_STRING([--enable-maxusers],[enable maxuser @<:@default=no@:>@])],[],[]) AC_MSG_CHECKING([runtime execution limit (maximum online system users)]) if test "x$enable_maxusers" = "xyes" ; then AC_DEFINE([MAXUSERS], [100], [Define if maxusers feature should be enabled]) diff --git a/rogue5/acinclude.m4 b/rogue5/acinclude.m4 index 76a6fdd..d89e89b 100644 --- a/rogue5/acinclude.m4 +++ b/rogue5/acinclude.m4 @@ -6,14 +6,10 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working curses], mp_cv_curses, [LIBS="$LIBS -lcurses" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_curses=yes, mp_cv_curses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_curses=yes],[mp_cv_curses=no])]) if test "$mp_cv_curses" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) - #AC_DEFINE(HAVE_CURSES_H) CURSES_LIB="-lcurses" fi fi @@ -21,10 +17,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working ncurses], mp_cv_ncurses, [LIBS="$mp_save_LIBS -lncurses" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_ncurses=yes, mp_cv_ncurses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_ncurses=yes],[mp_cv_ncurses=no])]) if test "$mp_cv_ncurses" = yes then AC_DEFINE(HAVE_NCURSES_H, 1, [Define to 1 if libncurses is requested]) @@ -35,10 +28,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working pdcurses], mp_cv_pdcurses, [LIBS="$mp_save_LIBS -lpdcurses" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_pdcurses=yes, mp_cv_pdcurses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_pdcurses=yes],[mp_cv_pdcurses=no])]) if test "$mp_cv_pdcurses" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) @@ -49,10 +39,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working pdcur], mp_cv_pdcur, [LIBS="$mp_save_LIBS -lpdcur" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_pdcur=yes, mp_cv_pdcur=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_pdcur=yes],[mp_cv_pdcur=no])]) if test "$mp_cv_pdcur" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) @@ -63,10 +50,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working peer pdcurses], mp_cv_lpdcurses, [LIBS="$mp_save_LIBS ../pdcurses/pdcurses.a" - AC_TRY_LINK( - [#include "../pdcurses/curses.h"], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_lpdcurses=yes, mp_cv_lpdcurses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "../pdcurses/curses.h"]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_lpdcurses=yes],[mp_cv_lpdcurses=no])]) if test "$mp_cv_lpdcurses" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) @@ -76,12 +60,10 @@ AC_DEFUN([MP_WITH_CURSES], fi AC_CACHE_CHECK([for ESCDELAY variable], [mc_cv_ncurses_escdelay], - [AC_TRY_LINK([], [ + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ extern int ESCDELAY; ESCDELAY = 0; - ], - [mc_cv_ncurses_escdelay=yes], - [mc_cv_ncurses_escdelay=no]) + ]])],[mc_cv_ncurses_escdelay=yes],[mc_cv_ncurses_escdelay=no]) ]) if test "$mc_cv_ncurses_escdelay" = yes; then AC_DEFINE(HAVE_ESCDELAY, 1, diff --git a/rogue5/configure.ac b/rogue5/configure.ac index 00852f5..d5fc0fb 100644 --- a/rogue5/configure.ac +++ b/rogue5/configure.ac @@ -1,8 +1,8 @@ # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. -AC_PREREQ(2.56) -AC_INIT([Rogue],[5.4.5], [yendor@rogueforge.net], [rogue5]) +AC_PREREQ([2.69]) +AC_INIT([Rogue],[5.4.5],[elwin@sdf.org],[rogue5]) AC_CONFIG_SRCDIR([armor.c]) AC_CONFIG_HEADER([config.h]) AC_CONFIG_FILES([Makefile rogue.6 rogue.me rogue.html]) @@ -29,7 +29,6 @@ AC_FUNC_FORK AC_PROG_GCC_TRADITIONAL AC_FUNC_LSTAT AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK -AC_TYPE_SIGNAL AC_FUNC_STAT AC_FUNC_VPRINTF AC_CHECK_FUNCS([erasechar killchar alarm getpass memset setenv strchr nlist _spawnl spawnl getpwuid loadav getloadavg strerror setresgid setregid setgid setresuid setreuid setuid getuid getgid]) @@ -57,11 +56,11 @@ AC_SUBST(DOCS_GROFF) AC_SUBST(DOCS_NROFF) AC_SUBST(DOCS_NONE) -AC_ARG_WITH(program-name, AC_HELP_STRING([--with-program-name=NAME],[alternate executable name]),[progname="$withval" ], [progname="rogue5"] ) +AC_ARG_WITH(program-name, AS_HELP_STRING([--with-program-name=NAME],[alternate executable name]),[progname="$withval" ], [progname="rogue5"] ) PROGRAM=$progname AC_SUBST(PROGRAM) -AC_ARG_ENABLE(setgid, AC_HELP_STRING([--enable-setgid=NAME],[install executable as setgid with group ownership of NAME @<:@default=no@:>@]),[],[]) +AC_ARG_ENABLE(setgid, AS_HELP_STRING([--enable-setgid=NAME],[install executable as setgid with group ownership of NAME @<:@default=no@:>@]),[],[]) AC_MSG_CHECKING([if using setgid execute bit]) if test "x$enable_setgid" = "xno" ; then GROUPOWNER= @@ -82,7 +81,7 @@ fi AC_SUBST(GROUPOWNER) -AC_ARG_ENABLE([scorefile],[AC_HELP_STRING([--enable-scorefile=SCOREFILE], [enable scoreboard with given filename])],[],[]) +AC_ARG_ENABLE([scorefile],[AS_HELP_STRING([--enable-scorefile=SCOREFILE],[enable scoreboard with given filename])],[],[]) AC_MSG_CHECKING([for scoreboard file]) if test "x$enable_scorefile" = "xno" ; then SCOREFILE= @@ -103,7 +102,7 @@ fi AC_SUBST(SCOREFILE) -AC_ARG_ENABLE([logfile],[AC_HELP_STRING([--enable-logfile=LOGFILE], [enable logfile with given filename])],[],[]) +AC_ARG_ENABLE([logfile],[AS_HELP_STRING([--enable-logfile=LOGFILE],[enable logfile with given filename])],[],[]) AC_MSG_CHECKING([for log file]) if test "x$enable_logfile" = "xno" ; then LOGFILE= @@ -124,7 +123,7 @@ fi AC_SUBST(LOGFILE) -AC_ARG_ENABLE([lockfile],[AC_HELP_STRING([--enable-lockfile=LOCKFILE], [enable scoreboard lockfile with given filename])],[],[]) +AC_ARG_ENABLE([lockfile],[AS_HELP_STRING([--enable-lockfile=LOCKFILE],[enable scoreboard lockfile with given filename])],[],[]) AC_MSG_CHECKING([for scoreboard lockfile file]) if test "x$enable_lockfile" = "xno" ; then LOCKFILE= @@ -145,7 +144,7 @@ fi AC_SUBST(LOCKFILE) -AC_ARG_ENABLE([savedir],[AC_HELP_STRING([--enable-savedir=SAVEDIR], [enable systemwide location for saved games])],[],[enable_savedir="no"]) +AC_ARG_ENABLE([savedir],[AS_HELP_STRING([--enable-savedir=SAVEDIR],[enable systemwide location for saved games])],[],[enable_savedir="no"]) AC_MSG_CHECKING([for save directory]) if test "x$enable_savedir" = "xno" ; then SAVEDIR= @@ -168,7 +167,7 @@ fi AC_SUBST(SAVEDIR) -AC_ARG_ENABLE([wizardmode],[AC_HELP_STRING([--enable-wizardmode], [enable availability of wizard mode @<:@default=no@:>@])],[],[]) +AC_ARG_ENABLE([wizardmode],[AS_HELP_STRING([--enable-wizardmode],[enable availability of wizard mode @<:@default=no@:>@])],[],[]) AC_MSG_CHECKING([if wizard mode is enabled]) if test "x$enable_wizardmode" = "xno" ; then AC_MSG_RESULT([no]) @@ -182,7 +181,7 @@ fi AC_MSG_RESULT([yes]) fi -AC_ARG_ENABLE([allscores],[AC_HELP_STRING([--enable-allscores], [enable scoreboard to show top scores, not just top players @<:@default=yes@:>@])],[],[enable_allscores=yes]) +AC_ARG_ENABLE([allscores],[AS_HELP_STRING([--enable-allscores],[enable scoreboard to show top scores, not just top players @<:@default=yes@:>@])],[],[enable_allscores=yes]) AC_MSG_CHECKING([if allscores is enabled]) if test "x$enable_allscores" = "xyes" ; then AC_DEFINE([ALLSCORES], [1], [Define if scorefile is top scores, not top players]) @@ -191,7 +190,7 @@ else AC_MSG_RESULT([no]) fi -AC_ARG_ENABLE([checktime],[AC_HELP_STRING([--enable-checktime], [enable checktime @<:@default=no@:>@])],[],[]) +AC_ARG_ENABLE([checktime],[AS_HELP_STRING([--enable-checktime],[enable checktime @<:@default=no@:>@])],[],[]) AC_MSG_CHECKING([if checktime is enabled]) if test "x$enable_checktime" = "xyes" ; then AC_DEFINE([CHECKTIME], [1], [Define if checktime feature should be enabled]) @@ -200,7 +199,7 @@ else AC_MSG_RESULT([no]) fi -AC_ARG_ENABLE([maxload],[AC_HELP_STRING([--enable-maxload], [enable maxload @<:@default=no@:>@])],[],[]) +AC_ARG_ENABLE([maxload],[AS_HELP_STRING([--enable-maxload],[enable maxload @<:@default=no@:>@])],[],[]) AC_MSG_CHECKING([runtime execution limit (maximum system load average)]) if test "x$enable_maxload" = "xyes" ; then AC_DEFINE([MAXLOAD], [100], [Define if maxload feature should be enabled]) @@ -214,7 +213,7 @@ AC_DEFINE_UNQUOTED([MAXLOAD], [$enable_maxload], [Define if maxload feature shou AC_MSG_RESULT([$enable_maxload]) fi -AC_ARG_ENABLE([maxusers],[AC_HELP_STRING([--enable-maxusers], [enable maxuser @<:@default=no@:>@])],[],[]) +AC_ARG_ENABLE([maxusers],[AS_HELP_STRING([--enable-maxusers],[enable maxuser @<:@default=no@:>@])],[],[]) AC_MSG_CHECKING([runtime execution limit (maximum online system users)]) if test "x$enable_maxusers" = "xyes" ; then AC_DEFINE([MAXUSERS], [100], [Define if maxusers feature should be enabled]) @@ -228,7 +227,7 @@ AC_DEFINE_UNQUOTED([MAXLOAD], [$enable_maxusers], [Define if maxusers feature sh AC_MSG_RESULT([$enable_maxusers]) fi -AC_ARG_ENABLE([numscores],[AC_HELP_STRING([--enable-numscores], [number of scores to store in scoreboard @<:@default=10@:>@])],[],[]) +AC_ARG_ENABLE([numscores],[AS_HELP_STRING([--enable-numscores],[number of scores to store in scoreboard @<:@default=10@:>@])],[],[]) AC_MSG_CHECKING([what the number of scores to store in scoreboard is]) if test "x$numscores" = "xyes" ; then AC_DEFINE([NUMSCORES], [10], [number of scores to store in scoreboard]) @@ -244,7 +243,7 @@ AC_DEFINE_UNQUOTED([NUMSCORES], [$enable_numscores], [number of scores to store AC_MSG_RESULT([$enable_numscores]) fi -AC_ARG_ENABLE([numname],[AC_HELP_STRING([--enable-numname], [word for number of scores to store in scoreboard @<:@default=Ten@:>@])],[],[]) +AC_ARG_ENABLE([numname],[AS_HELP_STRING([--enable-numname],[word for number of scores to store in scoreboard @<:@default=Ten@:>@])],[],[]) AC_MSG_CHECKING([word for the number of scores to store in scoreboard is]) if test "x$enable_numname" = "xyes" ; then AC_DEFINE([NUMNAME], ["Ten"], [word for the number of scores to store in scoreboard]) @@ -260,7 +259,7 @@ AC_DEFINE_UNQUOTED([NUMNAME], ["$enable_numname"], [word for the number of score AC_MSG_RESULT([$enable_numname]) fi -AC_ARG_ENABLE([loadav],[AC_HELP_STRING([--enable-loadav=NAMELIST], [use program's load average function (unlikely to work) @<:@default=no@:>@])],[],[]) +AC_ARG_ENABLE([loadav],[AS_HELP_STRING([--enable-loadav=NAMELIST],[use program's load average function (unlikely to work) @<:@default=no@:>@])],[],[]) AC_MSG_CHECKING([whether to use program's built in load average function]) if test "x$enable_loadav" = "xyes" ; then AC_DEFINE([LOADAV], [], [define if we should use program's load average function instead of system]) @@ -276,7 +275,7 @@ AC_DEFINE_UNQUOTED([NAMELIST], [$enable_loadav], [kernel file to pass to nlist() AC_MSG_RESULT([$enable_loadav]) fi -AC_ARG_ENABLE([ucount],[AC_HELP_STRING([--enable-ucount=UTMPFILE], [use program's own function to count users (unlikely to work) @<:@default=no@:>@])],[],[]) +AC_ARG_ENABLE([ucount],[AS_HELP_STRING([--enable-ucount=UTMPFILE],[use program's own function to count users (unlikely to work) @<:@default=no@:>@])],[],[]) AC_MSG_CHECKING([whether to use program's built in user counting function]) if test "x$enable_ucount" = "xyes" ; then AC_DEFINE([UCOUNT], [], [define if we should use program's user counting function instead of system's]) diff --git a/srogue/acinclude.m4 b/srogue/acinclude.m4 index 76a6fdd..d89e89b 100644 --- a/srogue/acinclude.m4 +++ b/srogue/acinclude.m4 @@ -6,14 +6,10 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working curses], mp_cv_curses, [LIBS="$LIBS -lcurses" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_curses=yes, mp_cv_curses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_curses=yes],[mp_cv_curses=no])]) if test "$mp_cv_curses" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) - #AC_DEFINE(HAVE_CURSES_H) CURSES_LIB="-lcurses" fi fi @@ -21,10 +17,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working ncurses], mp_cv_ncurses, [LIBS="$mp_save_LIBS -lncurses" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_ncurses=yes, mp_cv_ncurses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_ncurses=yes],[mp_cv_ncurses=no])]) if test "$mp_cv_ncurses" = yes then AC_DEFINE(HAVE_NCURSES_H, 1, [Define to 1 if libncurses is requested]) @@ -35,10 +28,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working pdcurses], mp_cv_pdcurses, [LIBS="$mp_save_LIBS -lpdcurses" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_pdcurses=yes, mp_cv_pdcurses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_pdcurses=yes],[mp_cv_pdcurses=no])]) if test "$mp_cv_pdcurses" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) @@ -49,10 +39,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working pdcur], mp_cv_pdcur, [LIBS="$mp_save_LIBS -lpdcur" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_pdcur=yes, mp_cv_pdcur=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_pdcur=yes],[mp_cv_pdcur=no])]) if test "$mp_cv_pdcur" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) @@ -63,10 +50,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working peer pdcurses], mp_cv_lpdcurses, [LIBS="$mp_save_LIBS ../pdcurses/pdcurses.a" - AC_TRY_LINK( - [#include "../pdcurses/curses.h"], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_lpdcurses=yes, mp_cv_lpdcurses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "../pdcurses/curses.h"]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_lpdcurses=yes],[mp_cv_lpdcurses=no])]) if test "$mp_cv_lpdcurses" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) @@ -76,12 +60,10 @@ AC_DEFUN([MP_WITH_CURSES], fi AC_CACHE_CHECK([for ESCDELAY variable], [mc_cv_ncurses_escdelay], - [AC_TRY_LINK([], [ + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ extern int ESCDELAY; ESCDELAY = 0; - ], - [mc_cv_ncurses_escdelay=yes], - [mc_cv_ncurses_escdelay=no]) + ]])],[mc_cv_ncurses_escdelay=yes],[mc_cv_ncurses_escdelay=no]) ]) if test "$mc_cv_ncurses_escdelay" = yes; then AC_DEFINE(HAVE_ESCDELAY, 1, diff --git a/srogue/configure.ac b/srogue/configure.ac index 58f47aa..0c59bb1 100644 --- a/srogue/configure.ac +++ b/srogue/configure.ac @@ -1,8 +1,8 @@ # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. -AC_PREREQ(2.56) -AC_INIT([SRogue],[9.0], [yendor@rogueforge.net], [srogue]) +AC_PREREQ([2.69]) +AC_INIT([Super-Rogue],[9.0],[elwin@sdf.org],[srogue]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([Makefile]) @@ -21,7 +21,6 @@ AC_STRUCT_TM # Checks for library functions. AC_FUNC_FORK AC_PROG_GCC_TRADITIONAL -AC_TYPE_SIGNAL AC_FUNC_STAT AC_FUNC_VPRINTF AC_CHECK_FUNCS([erasechar killchar alarm getpass memset setenv strchr nlist _spawnl spawnl getpwuid loadav getloadavg strerror setgid setuid getuid getgid lrand48 random srand48 srandom]) @@ -50,11 +49,11 @@ AC_SUBST(DOCS_GROFF) AC_SUBST(DOCS_NROFF) AC_SUBST(DOCS_NONE) -AC_ARG_WITH(program-name, AC_HELP_STRING([--with-program-name=NAME],[alternate executable name]),[progname="$withval" ], [progname="srogue"] ) +AC_ARG_WITH(program-name, AS_HELP_STRING([--with-program-name=NAME],[alternate executable name]),[progname="$withval" ], [progname="srogue"] ) PROGRAM=$progname AC_SUBST(PROGRAM) -AC_ARG_ENABLE(setgid, AC_HELP_STRING([--enable-setgid=NAME],[install executable as setgid with group ownership of NAME @<:@default=no@:>@]),[],[]) +AC_ARG_ENABLE(setgid, AS_HELP_STRING([--enable-setgid=NAME],[install executable as setgid with group ownership of NAME @<:@default=no@:>@]),[],[]) AC_MSG_CHECKING([if using setgid execute bit]) if test "x$enable_setgid" = "xno" ; then GROUPOWNER= @@ -75,7 +74,7 @@ fi AC_SUBST(GROUPOWNER) -AC_ARG_ENABLE([scorefile],[AC_HELP_STRING([--enable-scorefile=SCOREFILE], [enable scoreboard with given filename])],[],[]) +AC_ARG_ENABLE([scorefile],[AS_HELP_STRING([--enable-scorefile=SCOREFILE],[enable scoreboard with given filename])],[],[]) AC_MSG_CHECKING([for scoreboard file]) if test "x$enable_scorefile" = "xno" ; then SCOREFILE= @@ -96,7 +95,7 @@ fi AC_SUBST(SCOREFILE) -AC_ARG_ENABLE([logfile],[AC_HELP_STRING([--enable-logfile=LOGFILE], [enable logfile with given filename])],[],[]) +AC_ARG_ENABLE([logfile],[AS_HELP_STRING([--enable-logfile=LOGFILE],[enable logfile with given filename])],[],[]) AC_MSG_CHECKING([for log file]) if test "x$enable_logfile" = "xno" ; then LOGFILE= @@ -117,7 +116,7 @@ fi AC_SUBST(LOGFILE) -AC_ARG_ENABLE([savedir],[AC_HELP_STRING([--enable-savedir=SAVEDIR], [enable systemwide location for saved games])],[],[enable_savedir="no"]) +AC_ARG_ENABLE([savedir],[AS_HELP_STRING([--enable-savedir=SAVEDIR],[enable systemwide location for saved games])],[],[enable_savedir="no"]) AC_MSG_CHECKING([for save directory]) if test "x$enable_savedir" = "xno" ; then SAVEDIR= @@ -140,7 +139,7 @@ fi AC_SUBST(SAVEDIR) -AC_ARG_ENABLE([wizardmode],[AC_HELP_STRING([--enable-wizardmode], [enable availability of wizard mode @<:@default=no@:>@])],[],[]) +AC_ARG_ENABLE([wizardmode],[AS_HELP_STRING([--enable-wizardmode],[enable availability of wizard mode @<:@default=no@:>@])],[],[]) AC_MSG_CHECKING([if wizard mode is enabled]) if test "x$enable_wizardmode" = "xno" ; then AC_MSG_RESULT([no]) diff --git a/urogue/acinclude.m4 b/urogue/acinclude.m4 index 76a6fdd..d89e89b 100644 --- a/urogue/acinclude.m4 +++ b/urogue/acinclude.m4 @@ -6,14 +6,10 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working curses], mp_cv_curses, [LIBS="$LIBS -lcurses" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_curses=yes, mp_cv_curses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_curses=yes],[mp_cv_curses=no])]) if test "$mp_cv_curses" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) - #AC_DEFINE(HAVE_CURSES_H) CURSES_LIB="-lcurses" fi fi @@ -21,10 +17,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working ncurses], mp_cv_ncurses, [LIBS="$mp_save_LIBS -lncurses" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_ncurses=yes, mp_cv_ncurses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_ncurses=yes],[mp_cv_ncurses=no])]) if test "$mp_cv_ncurses" = yes then AC_DEFINE(HAVE_NCURSES_H, 1, [Define to 1 if libncurses is requested]) @@ -35,10 +28,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working pdcurses], mp_cv_pdcurses, [LIBS="$mp_save_LIBS -lpdcurses" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_pdcurses=yes, mp_cv_pdcurses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_pdcurses=yes],[mp_cv_pdcurses=no])]) if test "$mp_cv_pdcurses" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) @@ -49,10 +39,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working pdcur], mp_cv_pdcur, [LIBS="$mp_save_LIBS -lpdcur" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_pdcur=yes, mp_cv_pdcur=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_pdcur=yes],[mp_cv_pdcur=no])]) if test "$mp_cv_pdcur" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) @@ -63,10 +50,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working peer pdcurses], mp_cv_lpdcurses, [LIBS="$mp_save_LIBS ../pdcurses/pdcurses.a" - AC_TRY_LINK( - [#include "../pdcurses/curses.h"], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_lpdcurses=yes, mp_cv_lpdcurses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "../pdcurses/curses.h"]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_lpdcurses=yes],[mp_cv_lpdcurses=no])]) if test "$mp_cv_lpdcurses" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) @@ -76,12 +60,10 @@ AC_DEFUN([MP_WITH_CURSES], fi AC_CACHE_CHECK([for ESCDELAY variable], [mc_cv_ncurses_escdelay], - [AC_TRY_LINK([], [ + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ extern int ESCDELAY; ESCDELAY = 0; - ], - [mc_cv_ncurses_escdelay=yes], - [mc_cv_ncurses_escdelay=no]) + ]])],[mc_cv_ncurses_escdelay=yes],[mc_cv_ncurses_escdelay=no]) ]) if test "$mc_cv_ncurses_escdelay" = yes; then AC_DEFINE(HAVE_ESCDELAY, 1, diff --git a/urogue/configure.ac b/urogue/configure.ac index 1f83972..dcb619f 100644 --- a/urogue/configure.ac +++ b/urogue/configure.ac @@ -1,8 +1,8 @@ # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. -AC_PREREQ(2.56) -AC_INIT([UltraRogue],[1.07], [yendor@rogueforge.net], [urogue]) +AC_PREREQ([2.69]) +AC_INIT([UltraRogue],[1.07],[elwin@sdf.org],[urogue]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([Makefile]) @@ -23,7 +23,6 @@ AC_FUNC_FORK AC_PROG_GCC_TRADITIONAL AC_FUNC_LSTAT AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK -AC_TYPE_SIGNAL AC_FUNC_STAT AC_FUNC_VPRINTF AC_CHECK_FUNCS([erasechar killchar alarm getpass memset setenv strchr nlist _spawnl spawnl getpwuid loadav getloadavg strerror setgid setuid getuid getgid]) @@ -52,11 +51,11 @@ AC_SUBST(DOCS_GROFF) AC_SUBST(DOCS_NROFF) AC_SUBST(DOCS_NONE) -AC_ARG_WITH(program-name, AC_HELP_STRING([--with-program-name=NAME],[alternate executable name]),[progname="$withval" ], [progname="urogue"] ) +AC_ARG_WITH(program-name, AS_HELP_STRING([--with-program-name=NAME],[alternate executable name]),[progname="$withval" ], [progname="urogue"] ) PROGRAM=$progname AC_SUBST(PROGRAM) -AC_ARG_ENABLE(setgid, AC_HELP_STRING([--enable-setgid=NAME],[install executable as setgid with group ownership of NAME @<:@default=no@:>@]),[],[]) +AC_ARG_ENABLE(setgid, AS_HELP_STRING([--enable-setgid=NAME],[install executable as setgid with group ownership of NAME @<:@default=no@:>@]),[],[]) AC_MSG_CHECKING([if using setgid execute bit]) if test "x$enable_setgid" = "xno" ; then GROUPOWNER= @@ -77,7 +76,7 @@ fi AC_SUBST(GROUPOWNER) -AC_ARG_ENABLE([scorefile],[AC_HELP_STRING([--enable-scorefile=SCOREFILE], [enable scoreboard with given filename])],[],[]) +AC_ARG_ENABLE([scorefile],[AS_HELP_STRING([--enable-scorefile=SCOREFILE],[enable scoreboard with given filename])],[],[]) AC_MSG_CHECKING([for scoreboard file]) if test "x$enable_scorefile" = "xno" ; then SCOREFILE= @@ -98,7 +97,7 @@ fi AC_SUBST(SCOREFILE) -AC_ARG_ENABLE([logfile],[AC_HELP_STRING([--enable-logfile=LOGFILE], [enable logfile with given filename])],[],[]) +AC_ARG_ENABLE([logfile],[AS_HELP_STRING([--enable-logfile=LOGFILE],[enable logfile with given filename])],[],[]) AC_MSG_CHECKING([for log file]) if test "x$enable_logfile" = "xno" ; then LOGFILE= @@ -119,7 +118,7 @@ fi AC_SUBST(LOGFILE) -AC_ARG_ENABLE([savedir],[AC_HELP_STRING([--enable-savedir=SAVEDIR], [enable systemwide location for saved games])],[],[enable_savedir="no"]) +AC_ARG_ENABLE([savedir],[AS_HELP_STRING([--enable-savedir=SAVEDIR],[enable systemwide location for saved games])],[],[enable_savedir="no"]) AC_MSG_CHECKING([for save directory]) if test "x$enable_savedir" = "xno" ; then SAVEDIR= @@ -142,7 +141,7 @@ fi AC_SUBST(SAVEDIR) -AC_ARG_ENABLE([chardir],[AC_HELP_STRING([--enable-chardir=CHARDIR], [enable systemwide location for character files])],[],[enable_chardir="no"]) +AC_ARG_ENABLE([chardir],[AS_HELP_STRING([--enable-chardir=CHARDIR],[enable systemwide location for character files])],[],[enable_chardir="no"]) AC_MSG_CHECKING([for character directory]) if test "x$enable_chardir" = "xno" ; then CHARDIR= @@ -165,7 +164,7 @@ fi AC_SUBST(CHARDIR) -AC_ARG_ENABLE([wizardmode],[AC_HELP_STRING([--enable-wizardmode], [enable availability of wizard mode @<:@default=no@:>@])],[],[]) +AC_ARG_ENABLE([wizardmode],[AS_HELP_STRING([--enable-wizardmode],[enable availability of wizard mode @<:@default=no@:>@])],[],[]) AC_MSG_CHECKING([if wizard mode is enabled]) if test "x$enable_wizardmode" = "xno" ; then AC_MSG_RESULT([no]) @@ -176,7 +175,7 @@ AC_DEFINE([WIZARD], [], [Define to include wizard mode]) AC_MSG_RESULT([yes]) fi -AC_ARG_ENABLE([memdebug],[AC_HELP_STRING([--enable-memdebug], [enable built-in memory checking @<:@default=no@:>@])],[],[]) +AC_ARG_ENABLE([memdebug],[AS_HELP_STRING([--enable-memdebug],[enable built-in memory checking @<:@default=no@:>@])],[],[]) AC_MSG_CHECKING([if memory checking is enabled]) if test "x$enable_memdebug" = "xno" ; then AC_MSG_RESULT([no]) diff --git a/xrogue/acinclude.m4 b/xrogue/acinclude.m4 index 76a6fdd..d89e89b 100644 --- a/xrogue/acinclude.m4 +++ b/xrogue/acinclude.m4 @@ -6,14 +6,10 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working curses], mp_cv_curses, [LIBS="$LIBS -lcurses" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_curses=yes, mp_cv_curses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_curses=yes],[mp_cv_curses=no])]) if test "$mp_cv_curses" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) - #AC_DEFINE(HAVE_CURSES_H) CURSES_LIB="-lcurses" fi fi @@ -21,10 +17,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working ncurses], mp_cv_ncurses, [LIBS="$mp_save_LIBS -lncurses" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_ncurses=yes, mp_cv_ncurses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_ncurses=yes],[mp_cv_ncurses=no])]) if test "$mp_cv_ncurses" = yes then AC_DEFINE(HAVE_NCURSES_H, 1, [Define to 1 if libncurses is requested]) @@ -35,10 +28,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working pdcurses], mp_cv_pdcurses, [LIBS="$mp_save_LIBS -lpdcurses" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_pdcurses=yes, mp_cv_pdcurses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_pdcurses=yes],[mp_cv_pdcurses=no])]) if test "$mp_cv_pdcurses" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) @@ -49,10 +39,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working pdcur], mp_cv_pdcur, [LIBS="$mp_save_LIBS -lpdcur" - AC_TRY_LINK( - [#include ], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_pdcur=yes, mp_cv_pdcur=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_pdcur=yes],[mp_cv_pdcur=no])]) if test "$mp_cv_pdcur" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) @@ -63,10 +50,7 @@ AC_DEFUN([MP_WITH_CURSES], then AC_CACHE_CHECK([for working peer pdcurses], mp_cv_lpdcurses, [LIBS="$mp_save_LIBS ../pdcurses/pdcurses.a" - AC_TRY_LINK( - [#include "../pdcurses/curses.h"], - [chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ], - mp_cv_lpdcurses=yes, mp_cv_lpdcurses=no)]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "../pdcurses/curses.h"]], [[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ]])],[mp_cv_lpdcurses=yes],[mp_cv_lpdcurses=no])]) if test "$mp_cv_lpdcurses" = yes then AC_DEFINE(HAVE_CURSES_H, 1, [Define to 1 if libcurses is requested]) @@ -76,12 +60,10 @@ AC_DEFUN([MP_WITH_CURSES], fi AC_CACHE_CHECK([for ESCDELAY variable], [mc_cv_ncurses_escdelay], - [AC_TRY_LINK([], [ + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ extern int ESCDELAY; ESCDELAY = 0; - ], - [mc_cv_ncurses_escdelay=yes], - [mc_cv_ncurses_escdelay=no]) + ]])],[mc_cv_ncurses_escdelay=yes],[mc_cv_ncurses_escdelay=no]) ]) if test "$mc_cv_ncurses_escdelay" = yes; then AC_DEFINE(HAVE_ESCDELAY, 1, diff --git a/xrogue/configure.ac b/xrogue/configure.ac index 6c4bd67..8638a42 100644 --- a/xrogue/configure.ac +++ b/xrogue/configure.ac @@ -1,8 +1,8 @@ # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. -AC_PREREQ(2.56) -AC_INIT([XRogue],[8.0.3], [yendor@rogueforge.net], [xrogue]) +AC_PREREQ([2.69]) +AC_INIT([XRogue],[8.0.3],[elwin@sdf.org],[xrogue]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([Makefile]) @@ -21,15 +21,14 @@ AC_STRUCT_TM AC_FUNC_FORK AC_PROG_GCC_TRADITIONAL AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK -AC_TYPE_SIGNAL AC_CHECK_FUNCS([erasechar killchar alarm getpass memset setenv strchr _spawnl spawnl getpwuid loadav strerror setgid setuid getuid getgid]) AC_PROG_INSTALL -AC_ARG_WITH(program-name, AC_HELP_STRING([--with-program-name=NAME],[alternate executable name]),[progname="$withval" ], [progname="xrogue"] ) +AC_ARG_WITH(program-name, AS_HELP_STRING([--with-program-name=NAME],[alternate executable name]),[progname="$withval" ], [progname="xrogue"] ) PROGRAM=$progname AC_SUBST(PROGRAM) -AC_ARG_ENABLE(setgid, AC_HELP_STRING([--enable-setgid=NAME],[install executable as setgid with group ownership of NAME @<:@default=no@:>@]),[],[]) +AC_ARG_ENABLE(setgid, AS_HELP_STRING([--enable-setgid=NAME],[install executable as setgid with group ownership of NAME @<:@default=no@:>@]),[],[]) AC_MSG_CHECKING([if using setgid execute bit]) if test "x$enable_setgid" = "xno" ; then GROUPOWNER= @@ -50,7 +49,7 @@ fi AC_SUBST(GROUPOWNER) -AC_ARG_ENABLE([scorefile],[AC_HELP_STRING([--enable-scorefile=SCOREFILE], [enable scoreboard with given filename])],[],[]) +AC_ARG_ENABLE([scorefile],[AS_HELP_STRING([--enable-scorefile=SCOREFILE],[enable scoreboard with given filename])],[],[]) AC_MSG_CHECKING([for scoreboard file]) if test "x$enable_scorefile" = "xno" ; then SCOREFILE= @@ -71,7 +70,7 @@ fi AC_SUBST(SCOREFILE) -AC_ARG_ENABLE([logfile],[AC_HELP_STRING([--enable-logfile=LOGFILE], [enable logfile with given filename])],[],[]) +AC_ARG_ENABLE([logfile],[AS_HELP_STRING([--enable-logfile=LOGFILE],[enable logfile with given filename])],[],[]) AC_MSG_CHECKING([for log file]) if test "x$enable_logfile" = "xno" ; then LOGFILE= @@ -92,7 +91,7 @@ fi AC_SUBST(LOGFILE) -AC_ARG_ENABLE([savedir],[AC_HELP_STRING([--enable-savedir=SAVEDIR], [enable systemwide location for saved games])],[],[enable_savedir="no"]) +AC_ARG_ENABLE([savedir],[AS_HELP_STRING([--enable-savedir=SAVEDIR],[enable systemwide location for saved games])],[],[enable_savedir="no"]) AC_MSG_CHECKING([for save directory]) if test "x$enable_savedir" = "xno" ; then SAVEDIR= @@ -115,7 +114,7 @@ fi AC_SUBST(SAVEDIR) -AC_ARG_ENABLE([wizardmode],[AC_HELP_STRING([--enable-wizardmode], [enable availability of wizard mode @<:@default=no@:>@])],[],[]) +AC_ARG_ENABLE([wizardmode],[AS_HELP_STRING([--enable-wizardmode],[enable availability of wizard mode @<:@default=no@:>@])],[],[]) AC_MSG_CHECKING([if wizard mode is enabled]) if test "x$enable_wizardmode" = "xno" ; then AC_MSG_RESULT([no]) @@ -126,7 +125,7 @@ AC_DEFINE([WIZARD], [], [Define to include wizard mode]) AC_MSG_RESULT([yes]) fi -AC_ARG_ENABLE([limitscore],[AC_HELP_STRING([--enable-limitscore], [limit scores to one per class per uid @<:@default=no@:>@])],[],[]) +AC_ARG_ENABLE([limitscore],[AS_HELP_STRING([--enable-limitscore],[limit scores to one per class per uid @<:@default=no@:>@])],[],[]) AC_MSG_CHECKING([if limiting scores]) if test "x$enable_limitscore" = "xno" ; then AC_MSG_RESULT([no]) From fb0ef69143fb0105a669fdd65f83c3a2a0a613c3 Mon Sep 17 00:00:00 2001 From: "John \"Elwin\" Edwards" Date: Tue, 19 Oct 2021 20:39:00 -0400 Subject: [PATCH 06/10] Advanced Rogue 7: fix a string literal overwrite. pick_spell() attempted to capitalize type by overwriting the first character, changing it back later. All calls of pick_spell passed a string literal as type, and string literals should be considered immutable. This has been fixed by using a separate variable for the capitalized first character. XRogue already has a similar fix. Reported by John Harris of @Play. --- arogue7/player.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/arogue7/player.c b/arogue7/player.c index 55661a0..b481759 100644 --- a/arogue7/player.c +++ b/arogue7/player.c @@ -681,12 +681,13 @@ pick_spell(struct spells spells[], int ability, int num_spells, int power, } else { /* Now display the possible spells */ + /* type_cap is a workaround for code that tried to capitalize type by + * temporarily modifying it in place. */ + char type_cap = toupper(type[0]); wclear(hw); touchwin(hw); wmove(hw, 2, 0); - *type = toupper(*type); - wprintw(hw, " Cost %s", type); - *type = tolower(*type); + wprintw(hw, " Cost %c%s", type_cap, type + 1); mvwaddstr(hw, 3, 0, "-----------------------------------------------"); maxlen = 47; /* Maximum width of header */ @@ -733,9 +734,7 @@ pick_spell(struct spells spells[], int ability, int num_spells, int power, /* Design prompts */ sprintf(label, "Current %s power is %d", type, spell_left); - *type = toupper(*type); - sprintf(title, " Cost %s", type); - *type = tolower(*type); + sprintf(title, " Cost %c%s", type_cap, type + 1); sprintf(prbuf, "Select a %s or press Cancl to continue.", type); /* Set up the main menu structure */ From b6067e102e92cb61ced4fa369b4a6b0a90d6ed98 Mon Sep 17 00:00:00 2001 From: "John \"Elwin\" Edwards" Date: Thu, 21 Oct 2021 21:00:15 -0400 Subject: [PATCH 07/10] Advanced Rogue 7: fix a crash when casting magic missile. do_zap() dereferenced a struct object pointer while ignoring the result of a NULL check. XRogue had the same problem, though triggering it was unlikely, since XRogue does not include a magic missile spell. Reported by John Harris of @Play. --- arogue7/sticks.c | 2 +- xrogue/sticks.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arogue7/sticks.c b/arogue7/sticks.c index b6be4d5..0fe196b 100644 --- a/arogue7/sticks.c +++ b/arogue7/sticks.c @@ -309,7 +309,7 @@ do_zap(struct thing *zapper, struct object *obj, coord *direction, int which, if (!obj) dice = zapper->t_stats.s_lvl; - if (obj->o_type == RELIC) + else if (obj->o_type == RELIC) dice = 15; else if (EQUAL(ws_type[which], "staff")) dice = 10; diff --git a/xrogue/sticks.c b/xrogue/sticks.c index 19bdd7a..71248ba 100644 --- a/xrogue/sticks.c +++ b/xrogue/sticks.c @@ -323,7 +323,7 @@ do_zap(struct thing *zapper, struct object *obj, coord *direction, int which, if (!obj) dice = zapper->t_stats.s_lvl; - if (obj->o_type == RELIC) + else if (obj->o_type == RELIC) dice = 15; else if (EQUAL(ws_type[which], "staff")) dice = 10; From 2a9d279baa247cca17d43f0c26e69fd5d4489b46 Mon Sep 17 00:00:00 2001 From: "John \"Elwin\" Edwards" Date: Sun, 24 Oct 2021 20:26:21 -0400 Subject: [PATCH 08/10] Advanced Rogue 5, 7: fix some trading post messages. When attempting to buy an unaffordable object, messages were often of the form "You can't afford that a scroll of hold monster !", because the object description (stored in curpurch) was the same text used in inventory displays. This has been worked around by inspecting the contents of curpurch and using different message templates. --- arogue5/trader.c | 11 ++++++++++- arogue7/trader.c | 9 ++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/arogue5/trader.c b/arogue5/trader.c index 17d8e44..b616c5b 100644 --- a/arogue5/trader.c +++ b/arogue5/trader.c @@ -51,7 +51,16 @@ buy_it(void) } mpos = 0; if (curprice > purse) { - msg("You can't afford to buy that %s !",curpurch); + if (!strncmp(curpurch, "a ", 2)) + msg("You can't afford to buy that %s!", curpurch + 2); + else if (!strncmp(curpurch, "an ", 3)) + msg("You can't afford to buy that %s!", curpurch + 3); + else if (!strncmp(curpurch, "some ", 5)) + msg("You can't afford to buy that %s!", curpurch + 5); + else if (isdigit(curpurch[0])) + msg("You can't afford to buy those %s!", curpurch); + else + msg("You can't afford to buy that %s!", curpurch); return; } /* diff --git a/arogue7/trader.c b/arogue7/trader.c index 32914c5..7abaa56 100644 --- a/arogue7/trader.c +++ b/arogue7/trader.c @@ -55,7 +55,14 @@ buy_it(void) } mpos = 0; if (curprice > purse) { - msg("You can't afford to buy that %s !",curpurch); + if (!strncmp(curpurch, "a ", 2)) + msg("You can't afford to buy that %s!", curpurch + 2); + else if (!strncmp(curpurch, "an ", 3)) + msg("You can't afford to buy that %s!", curpurch + 3); + else if (isdigit(curpurch[0])) + msg("You can't afford to buy those %s!", curpurch); + else + msg("You can't afford to buy that %s!", curpurch); return; } /* From 8a4bf3766797192db3ff4f11a2d48c08f8ea7a8b Mon Sep 17 00:00:00 2001 From: "John \"Elwin\" Edwards" Date: Sun, 31 Oct 2021 21:35:53 -0400 Subject: [PATCH 09/10] Naming items should not use up a turn. This was fixed by adding "after = FALSE;" to the relevant cases in command(). Rogue V4 and V5 are not affected. --- arogue5/command.c | 4 ++-- arogue7/command.c | 4 ++-- rogue3/command.c | 2 +- srogue/command.c | 2 +- urogue/command.c | 4 ++-- xrogue/command.c | 6 ++++-- 6 files changed, 12 insertions(+), 10 deletions(-) diff --git a/arogue5/command.c b/arogue5/command.c index d73c33b..fb427a6 100644 --- a/arogue5/command.c +++ b/arogue5/command.c @@ -222,8 +222,8 @@ command(void) when 'W' : wear(); when 'T' : take_off(); when 'o' : option(); - when 'c' : call(FALSE); - when 'm' : call(TRUE); + when 'c' : after = FALSE; call(FALSE); + when 'm' : after = FALSE; call(TRUE); when '>' : after = FALSE; d_level(); when '<' : after = FALSE; u_level(); when '?' : after = FALSE; help(); diff --git a/arogue7/command.c b/arogue7/command.c index 0e9a1b8..ac4f23f 100644 --- a/arogue7/command.c +++ b/arogue7/command.c @@ -285,9 +285,9 @@ command(void) when C_WEAR : wear(); when C_TAKEOFF : take_off(); when 'o' : option(); - when CTRL('N') : nameit(); + when CTRL('N') : after = FALSE; nameit(); when '=' : after = FALSE; display(); - when 'm' : nameitem(NULL, TRUE); + when 'm' : after = FALSE; nameitem(NULL, TRUE); when '>' : after = FALSE; d_level(); when '<' : after = FALSE; u_level(); when '?' : after = FALSE; help(); diff --git a/rogue3/command.c b/rogue3/command.c index 7c36ab4..aec618d 100644 --- a/rogue3/command.c +++ b/rogue3/command.c @@ -166,7 +166,7 @@ command() when 'P' : ring_on(); when 'R' : ring_off(); when 'o' : option(); - when 'c' : call(); + when 'c' : after = FALSE; call(); when '>' : after = FALSE; d_level(); when '<' : after = FALSE; u_level(); when '?' : after = FALSE; help(); diff --git a/srogue/command.c b/srogue/command.c index 4d0dbc6..5b4973f 100644 --- a/srogue/command.c +++ b/srogue/command.c @@ -175,7 +175,7 @@ command(void) when 'P' : ring_on(); when 'R' : ring_off(); when 'O' : option(); - when 'c' : call(); + when 'c' : after = FALSE; call(); when '>' : after = FALSE; d_level(); when '<' : after = FALSE; u_level(); when '?' : after = FALSE; help(); diff --git a/urogue/command.c b/urogue/command.c index fbcc0b0..cc97122 100644 --- a/urogue/command.c +++ b/urogue/command.c @@ -394,8 +394,8 @@ command(void) case 'P': ring_on(); break; case 'R': ring_off(); break; case 'p': prayer(); break; - case 'C': call(FALSE); break; - case 'M': call(TRUE); break; + case 'C': after = FALSE; call(FALSE); break; + case 'M': after = FALSE; call(TRUE); break; case 's': search(FALSE); break; /* diff --git a/xrogue/command.c b/xrogue/command.c index 6c54793..d3818b3 100644 --- a/xrogue/command.c +++ b/xrogue/command.c @@ -320,7 +320,9 @@ command(void) } when 'i' : after = FALSE; inventory(pack, ALL); when 'I' : after = FALSE; picky_inven(); - when 'm' : nameitem((struct linked_list *)NULL, TRUE); + when 'm' : + after = FALSE; + nameitem((struct linked_list *)NULL, TRUE); when 'o' : option(); when 'O' : msg("Charactor type: %s Quest item: %s", char_class[char_type].name, rel_magic[quest_item].mi_name); when ',' : @@ -398,7 +400,7 @@ command(void) food_left); when CTRL('L') : after = FALSE; clearok(curscr, TRUE); touchwin(cw); - when CTRL('N') : nameit(); + when CTRL('N') : after = FALSE; nameit(); when CTRL('O') : after = FALSE; opt_player(); when CTRL('R') : after = FALSE; msg(huh); when CTRL('T') : From 35c5e434e658592a0139c7a110c4a323357e1019 Mon Sep 17 00:00:00 2001 From: "John \"Elwin\" Edwards" Date: Tue, 5 Sep 2023 20:05:24 -0400 Subject: [PATCH 10/10] Rearrange some Autoconf files. Autoconf was failing to detect install-sh at the top level and needed some explicit directions. It also wants config.guess and config.sub to be provided too. A few other macros have also been updated. --- arogue5/configure.ac | 2 +- arogue7/configure.ac | 2 +- build-aux/config.guess | 1768 ++++++++++++++++++++++++++ build-aux/config.sub | 1890 ++++++++++++++++++++++++++++ install-sh => build-aux/install-sh | 146 ++- rogue3/configure.ac | 2 +- rogue4/configure.ac | 2 +- rogue5/configure.ac | 4 +- srogue/configure.ac | 2 +- urogue/configure.ac | 2 +- xrogue/configure.ac | 2 +- 11 files changed, 3746 insertions(+), 76 deletions(-) create mode 100755 build-aux/config.guess create mode 100755 build-aux/config.sub rename install-sh => build-aux/install-sh (80%) diff --git a/arogue5/configure.ac b/arogue5/configure.ac index b54cf9f..c37ac4b 100644 --- a/arogue5/configure.ac +++ b/arogue5/configure.ac @@ -5,13 +5,13 @@ AC_PREREQ([2.69]) AC_INIT([Advanced Rogue],[5.8.2],[elwin@sdf.org],[arogue5]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([Makefile]) +AC_CONFIG_AUX_DIR([../build-aux]) # Checks for programs. AC_PROG_CC # Checks for libraries. MP_WITH_CURSES # Checks for header files. -AC_HEADER_STDC AC_CHECK_HEADERS([pwd.h errno.h fcntl.h limits.h nlist.h stdlib.h string.h sys/ioctl.h sys/utsname.h termios.h unistd.h utmp.h term.h ncurses/term.h process.h arpa/inet.h]) # Checks for typedefs, structures, and compiler characteristics. diff --git a/arogue7/configure.ac b/arogue7/configure.ac index cdb7af5..4dfa42b 100644 --- a/arogue7/configure.ac +++ b/arogue7/configure.ac @@ -5,13 +5,13 @@ AC_PREREQ([2.69]) AC_INIT([Advanced Rogue],[7.7.1],[elwin@sdf.org],[arogue7]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([Makefile]) +AC_CONFIG_AUX_DIR([../build-aux]) # Checks for programs. AC_PROG_CC # Checks for libraries. MP_WITH_CURSES # Checks for header files. -AC_HEADER_STDC AC_CHECK_HEADERS([pwd.h errno.h fcntl.h limits.h stdlib.h string.h sys/ioctl.h sys/utsname.h termios.h unistd.h utmp.h term.h ncurses/term.h process.h arpa/inet.h]) # Checks for typedefs, structures, and compiler characteristics. diff --git a/build-aux/config.guess b/build-aux/config.guess new file mode 100755 index 0000000..c7f17e8 --- /dev/null +++ b/build-aux/config.guess @@ -0,0 +1,1768 @@ +#!/usr/bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2022 Free Software Foundation, Inc. + +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2022-05-25' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. +# +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess +# +# Please send patches to . + + +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2022 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +# Just in case it came from the environment. +GUESS= + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +tmp= +# shellcheck disable=SC2172 +trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 + +set_cc_for_build() { + # prevent multiple calls if $tmp is already set + test "$tmp" && return 0 + : "${TMPDIR=/tmp}" + # shellcheck disable=SC2039,SC3028 + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } + dummy=$tmp/dummy + case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" + for driver in cc gcc c89 c99 ; do + if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD=$driver + break + fi + done + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; + esac +} + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if test -f /.attbin/uname ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +case $UNAME_SYSTEM in +Linux|GNU|GNU/*) + LIBC=unknown + + set_cc_for_build + cat <<-EOF > "$dummy.c" + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #elif defined(__GLIBC__) + LIBC=gnu + #else + #include + /* First heuristic to detect musl libc. */ + #ifdef __DEFINED_va_list + LIBC=musl + #endif + #endif + EOF + cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "$cc_set_libc" + + # Second heuristic to detect musl libc. + if [ "$LIBC" = unknown ] && + command -v ldd >/dev/null && + ldd --version 2>&1 | grep -q ^musl; then + LIBC=musl + fi + + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + if [ "$LIBC" = unknown ]; then + LIBC=gnu + fi + ;; +esac + +# Note: order is significant - the case branches are not exclusive. + +case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + echo unknown)` + case $UNAME_MACHINE_ARCH in + aarch64eb) machine=aarch64_be-unknown ;; + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; + *) machine=$UNAME_MACHINE_ARCH-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently (or will in the future) and ABI. + case $UNAME_MACHINE_ARCH in + earm*) + os=netbsdelf + ;; + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # Determine ABI tags. + case $UNAME_MACHINE_ARCH in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case $UNAME_VERSION in + Debian*) + release='-gnu' + ;; + *) + release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + GUESS=$machine-${os}${release}${abi-} + ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE + ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE + ;; + *:SecBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE + ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE + ;; + *:MidnightBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE + ;; + *:ekkoBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE + ;; + *:SolidBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE + ;; + *:OS108:*:*) + GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE + ;; + macppc:MirBSD:*:*) + GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE + ;; + *:MirBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE + ;; + *:Sortix:*:*) + GUESS=$UNAME_MACHINE-unknown-sortix + ;; + *:Twizzler:*:*) + GUESS=$UNAME_MACHINE-unknown-twizzler + ;; + *:Redox:*:*) + GUESS=$UNAME_MACHINE-unknown-redox + ;; + mips:OSF1:*.*) + GUESS=mips-dec-osf1 + ;; + alpha:OSF1:*:*) + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + trap '' 0 + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case $ALPHA_CPU_TYPE in + "EV4 (21064)") + UNAME_MACHINE=alpha ;; + "EV4.5 (21064)") + UNAME_MACHINE=alpha ;; + "LCA4 (21066/21068)") + UNAME_MACHINE=alpha ;; + "EV5 (21164)") + UNAME_MACHINE=alphaev5 ;; + "EV5.6 (21164A)") + UNAME_MACHINE=alphaev56 ;; + "EV5.6 (21164PC)") + UNAME_MACHINE=alphapca56 ;; + "EV5.7 (21164PC)") + UNAME_MACHINE=alphapca57 ;; + "EV6 (21264)") + UNAME_MACHINE=alphaev6 ;; + "EV6.7 (21264A)") + UNAME_MACHINE=alphaev67 ;; + "EV6.8CB (21264C)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8AL (21264B)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8CX (21264D)") + UNAME_MACHINE=alphaev68 ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE=alphaev69 ;; + "EV7 (21364)") + UNAME_MACHINE=alphaev7 ;; + "EV7.9 (21364A)") + UNAME_MACHINE=alphaev79 ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + GUESS=$UNAME_MACHINE-dec-osf$OSF_REL + ;; + Amiga*:UNIX_System_V:4.0:*) + GUESS=m68k-unknown-sysv4 + ;; + *:[Aa]miga[Oo][Ss]:*:*) + GUESS=$UNAME_MACHINE-unknown-amigaos + ;; + *:[Mm]orph[Oo][Ss]:*:*) + GUESS=$UNAME_MACHINE-unknown-morphos + ;; + *:OS/390:*:*) + GUESS=i370-ibm-openedition + ;; + *:z/VM:*:*) + GUESS=s390-ibm-zvmoe + ;; + *:OS400:*:*) + GUESS=powerpc-ibm-os400 + ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + GUESS=arm-acorn-riscix$UNAME_RELEASE + ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + GUESS=arm-unknown-riscos + ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + GUESS=hppa1.1-hitachi-hiuxmpp + ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + case `(/bin/universe) 2>/dev/null` in + att) GUESS=pyramid-pyramid-sysv3 ;; + *) GUESS=pyramid-pyramid-bsd ;; + esac + ;; + NILE*:*:*:dcosx) + GUESS=pyramid-pyramid-svr4 + ;; + DRS?6000:unix:4.0:6*) + GUESS=sparc-icl-nx6 + ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) GUESS=sparc-icl-nx7 ;; + esac + ;; + s390x:SunOS:*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL + ;; + sun4H:SunOS:5.*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-hal-solaris2$SUN_REL + ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris2$SUN_REL + ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + GUESS=i386-pc-auroraux$UNAME_RELEASE + ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + set_cc_for_build + SUN_ARCH=i386 + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH=x86_64 + fi + fi + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$SUN_ARCH-pc-solaris2$SUN_REL + ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris3$SUN_REL + ;; + sun4*:SunOS:*:*) + case `/usr/bin/arch -k` in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` + GUESS=sparc-sun-sunos$SUN_REL + ;; + sun3*:SunOS:*:*) + GUESS=m68k-sun-sunos$UNAME_RELEASE + ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 + case `/bin/arch` in + sun3) + GUESS=m68k-sun-sunos$UNAME_RELEASE + ;; + sun4) + GUESS=sparc-sun-sunos$UNAME_RELEASE + ;; + esac + ;; + aushp:SunOS:*:*) + GUESS=sparc-auspex-sunos$UNAME_RELEASE + ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + GUESS=m68k-milan-mint$UNAME_RELEASE + ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + GUESS=m68k-hades-mint$UNAME_RELEASE + ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + GUESS=m68k-unknown-mint$UNAME_RELEASE + ;; + m68k:machten:*:*) + GUESS=m68k-apple-machten$UNAME_RELEASE + ;; + powerpc:machten:*:*) + GUESS=powerpc-apple-machten$UNAME_RELEASE + ;; + RISC*:Mach:*:*) + GUESS=mips-dec-mach_bsd4.3 + ;; + RISC*:ULTRIX:*:*) + GUESS=mips-dec-ultrix$UNAME_RELEASE + ;; + VAX*:ULTRIX*:*:*) + GUESS=vax-dec-ultrix$UNAME_RELEASE + ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + GUESS=clipper-intergraph-clix$UNAME_RELEASE + ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`"$dummy" "$dummyarg"` && + { echo "$SYSTEM_NAME"; exit; } + GUESS=mips-mips-riscos$UNAME_RELEASE + ;; + Motorola:PowerMAX_OS:*:*) + GUESS=powerpc-motorola-powermax + ;; + Motorola:*:4.3:PL8-*) + GUESS=powerpc-harris-powermax + ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + GUESS=powerpc-harris-powermax + ;; + Night_Hawk:Power_UNIX:*:*) + GUESS=powerpc-harris-powerunix + ;; + m88k:CX/UX:7*:*) + GUESS=m88k-harris-cxux7 + ;; + m88k:*:4*:R4*) + GUESS=m88k-motorola-sysv4 + ;; + m88k:*:3*:R3*) + GUESS=m88k-motorola-sysv3 + ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 + then + if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ + test "$TARGET_BINARY_INTERFACE"x = x + then + GUESS=m88k-dg-dgux$UNAME_RELEASE + else + GUESS=m88k-dg-dguxbcs$UNAME_RELEASE + fi + else + GUESS=i586-dg-dgux$UNAME_RELEASE + fi + ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + GUESS=m88k-dolphin-sysv3 + ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + GUESS=m88k-motorola-sysv3 + ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + GUESS=m88k-tektronix-sysv3 + ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + GUESS=m68k-tektronix-bsd + ;; + *:IRIX*:*:*) + IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'` + GUESS=mips-sgi-irix$IRIX_REL + ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id + ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + GUESS=i386-ibm-aix + ;; + ia64:AIX:*:*) + if test -x /usr/bin/oslevel ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE + fi + GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV + ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` + then + GUESS=$SYSTEM_NAME + else + GUESS=rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + GUESS=rs6000-ibm-aix3.2.4 + else + GUESS=rs6000-ibm-aix3.2 + fi + ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if test -x /usr/bin/lslpp ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \ + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` + else + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE + fi + GUESS=$IBM_ARCH-ibm-aix$IBM_REV + ;; + *:AIX:*:*) + GUESS=rs6000-ibm-aix + ;; + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) + GUESS=romp-ibm-bsd4.4 + ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to + ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + GUESS=rs6000-bull-bosx + ;; + DPX/2?00:B.O.S.:*:*) + GUESS=m68k-bull-sysv3 + ;; + 9000/[34]??:4.3bsd:1.*:*) + GUESS=m68k-hp-bsd + ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + GUESS=m68k-hp-bsd4.4 + ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + case $UNAME_MACHINE in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if test -x /usr/bin/getconf; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case $sc_cpu_version in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case $sc_kernel_bits in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 + esac ;; + esac + fi + if test "$HP_ARCH" = ""; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if test "$HP_ARCH" = hppa2.0w + then + set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH=hppa2.0w + else + HP_ARCH=hppa64 + fi + fi + GUESS=$HP_ARCH-hp-hpux$HPUX_REV + ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + GUESS=ia64-hp-hpux$HPUX_REV + ;; + 3050*:HI-UX:*:*) + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && + { echo "$SYSTEM_NAME"; exit; } + GUESS=unknown-hitachi-hiuxwe2 + ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) + GUESS=hppa1.1-hp-bsd + ;; + 9000/8??:4.3bsd:*:*) + GUESS=hppa1.0-hp-bsd + ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + GUESS=hppa1.0-hp-mpeix + ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) + GUESS=hppa1.1-hp-osf + ;; + hp8??:OSF1:*:*) + GUESS=hppa1.0-hp-osf + ;; + i*86:OSF1:*:*) + if test -x /usr/sbin/sysversion ; then + GUESS=$UNAME_MACHINE-unknown-osf1mk + else + GUESS=$UNAME_MACHINE-unknown-osf1 + fi + ;; + parisc*:Lites*:*:*) + GUESS=hppa1.1-hp-lites + ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + GUESS=c1-convex-bsd + ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + GUESS=c34-convex-bsd + ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + GUESS=c38-convex-bsd + ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + GUESS=c4-convex-bsd + ;; + CRAY*Y-MP:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=ymp-cray-unicos$CRAY_REL + ;; + CRAY*[A-Z]90:*:*:*) + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=t90-cray-unicos$CRAY_REL + ;; + CRAY*T3E:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=alphaev5-cray-unicosmk$CRAY_REL + ;; + CRAY*SV1:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=sv1-cray-unicos$CRAY_REL + ;; + *:UNICOS/mp:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=craynv-cray-unicosmp$CRAY_REL + ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` + GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE + ;; + sparc*:BSD/OS:*:*) + GUESS=sparc-unknown-bsdi$UNAME_RELEASE + ;; + *:BSD/OS:*:*) + GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE + ;; + arm:FreeBSD:*:*) + UNAME_PROCESSOR=`uname -p` + set_cc_for_build + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi + else + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf + fi + ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=`/usr/bin/uname -p` + case $UNAME_PROCESSOR in + amd64) + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; + esac + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL + ;; + i*:CYGWIN*:*) + GUESS=$UNAME_MACHINE-pc-cygwin + ;; + *:MINGW64*:*) + GUESS=$UNAME_MACHINE-pc-mingw64 + ;; + *:MINGW*:*) + GUESS=$UNAME_MACHINE-pc-mingw32 + ;; + *:MSYS*:*) + GUESS=$UNAME_MACHINE-pc-msys + ;; + i*:PW*:*) + GUESS=$UNAME_MACHINE-pc-pw32 + ;; + *:SerenityOS:*:*) + GUESS=$UNAME_MACHINE-pc-serenity + ;; + *:Interix*:*) + case $UNAME_MACHINE in + x86) + GUESS=i586-pc-interix$UNAME_RELEASE + ;; + authenticamd | genuineintel | EM64T) + GUESS=x86_64-unknown-interix$UNAME_RELEASE + ;; + IA64) + GUESS=ia64-unknown-interix$UNAME_RELEASE + ;; + esac ;; + i*:UWIN*:*) + GUESS=$UNAME_MACHINE-pc-uwin + ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + GUESS=x86_64-pc-cygwin + ;; + prep*:SunOS:5.*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=powerpcle-unknown-solaris2$SUN_REL + ;; + *:GNU:*:*) + # the GNU system + GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'` + GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL + ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC + ;; + *:Minix:*:*) + GUESS=$UNAME_MACHINE-unknown-minix + ;; + aarch64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + arm*:Linux:*:*) + set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi + else + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf + fi + fi + ;; + avr32*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + cris:Linux:*:*) + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; + crisv32:Linux:*:*) + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; + e2k:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + frv:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + hexagon:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + i*86:Linux:*:*) + GUESS=$UNAME_MACHINE-pc-linux-$LIBC + ;; + ia64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + k1om:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + m32r*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + m68*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + mips:Linux:*:* | mips64:Linux:*:*) + set_cc_for_build + IS_GLIBC=0 + test x"${LIBC}" = xgnu && IS_GLIBC=1 + sed 's/^ //' << EOF > "$dummy.c" + #undef CPU + #undef mips + #undef mipsel + #undef mips64 + #undef mips64el + #if ${IS_GLIBC} && defined(_ABI64) + LIBCABI=gnuabi64 + #else + #if ${IS_GLIBC} && defined(_ABIN32) + LIBCABI=gnuabin32 + #else + LIBCABI=${LIBC} + #endif + #endif + + #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa64r6 + #else + #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa32r6 + #else + #if defined(__mips64) + CPU=mips64 + #else + CPU=mips + #endif + #endif + #endif + + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + MIPS_ENDIAN=el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + MIPS_ENDIAN= + #else + MIPS_ENDIAN= + #endif + #endif +EOF + cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'` + eval "$cc_set_vars" + test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } + ;; + mips64el:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + openrisc*:Linux:*:*) + GUESS=or1k-unknown-linux-$LIBC + ;; + or32:Linux:*:* | or1k*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + padre:Linux:*:*) + GUESS=sparc-unknown-linux-$LIBC + ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + GUESS=hppa64-unknown-linux-$LIBC + ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;; + PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;; + *) GUESS=hppa-unknown-linux-$LIBC ;; + esac + ;; + ppc64:Linux:*:*) + GUESS=powerpc64-unknown-linux-$LIBC + ;; + ppc:Linux:*:*) + GUESS=powerpc-unknown-linux-$LIBC + ;; + ppc64le:Linux:*:*) + GUESS=powerpc64le-unknown-linux-$LIBC + ;; + ppcle:Linux:*:*) + GUESS=powerpcle-unknown-linux-$LIBC + ;; + riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + s390:Linux:*:* | s390x:Linux:*:*) + GUESS=$UNAME_MACHINE-ibm-linux-$LIBC + ;; + sh64*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + sh*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + tile*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + vax:Linux:*:*) + GUESS=$UNAME_MACHINE-dec-linux-$LIBC + ;; + x86_64:Linux:*:*) + set_cc_for_build + CPU=$UNAME_MACHINE + LIBCABI=$LIBC + if test "$CC_FOR_BUILD" != no_compiler_found; then + ABI=64 + sed 's/^ //' << EOF > "$dummy.c" + #ifdef __i386__ + ABI=x86 + #else + #ifdef __ILP32__ + ABI=x32 + #endif + #endif +EOF + cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'` + eval "$cc_set_abi" + case $ABI in + x86) CPU=i686 ;; + x32) LIBCABI=${LIBC}x32 ;; + esac + fi + GUESS=$CPU-pc-linux-$LIBCABI + ;; + xtensa*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + GUESS=i386-sequent-sysv4 + ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION + ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + GUESS=$UNAME_MACHINE-pc-os2-emx + ;; + i*86:XTS-300:*:STOP) + GUESS=$UNAME_MACHINE-unknown-stop + ;; + i*86:atheos:*:*) + GUESS=$UNAME_MACHINE-unknown-atheos + ;; + i*86:syllable:*:*) + GUESS=$UNAME_MACHINE-pc-syllable + ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + GUESS=i386-unknown-lynxos$UNAME_RELEASE + ;; + i*86:*DOS:*:*) + GUESS=$UNAME_MACHINE-pc-msdosdjgpp + ;; + i*86:*:4.*:*) + UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL + else + GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL + fi + ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL + else + GUESS=$UNAME_MACHINE-pc-sysv32 + fi + ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configure will decide that + # this is a cross-build. + GUESS=i586-pc-msdosdjgpp + ;; + Intel:Mach:3*:*) + GUESS=i386-pc-mach3 + ;; + paragon:*:*:*) + GUESS=i860-intel-osf1 + ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4 + fi + ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + GUESS=m68010-convergent-sysv + ;; + mc68k:UNIX:SYSTEM5:3.51m) + GUESS=m68k-convergent-sysv + ;; + M680?0:D-NIX:5.3:*) + GUESS=m68k-diab-dnix + ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + GUESS=m68k-unknown-lynxos$UNAME_RELEASE + ;; + mc68030:UNIX_System_V:4.*:*) + GUESS=m68k-atari-sysv4 + ;; + TSUNAMI:LynxOS:2.*:*) + GUESS=sparc-unknown-lynxos$UNAME_RELEASE + ;; + rs6000:LynxOS:2.*:*) + GUESS=rs6000-unknown-lynxos$UNAME_RELEASE + ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + GUESS=powerpc-unknown-lynxos$UNAME_RELEASE + ;; + SM[BE]S:UNIX_SV:*:*) + GUESS=mips-dde-sysv$UNAME_RELEASE + ;; + RM*:ReliantUNIX-*:*:*) + GUESS=mips-sni-sysv4 + ;; + RM*:SINIX-*:*:*) + GUESS=mips-sni-sysv4 + ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + GUESS=$UNAME_MACHINE-sni-sysv4 + else + GUESS=ns32k-sni-sysv + fi + ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + GUESS=i586-unisys-sysv4 + ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + GUESS=hppa1.1-stratus-sysv4 + ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + GUESS=i860-stratus-sysv4 + ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + GUESS=$UNAME_MACHINE-stratus-vos + ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + GUESS=hppa1.1-stratus-vos + ;; + mc68*:A/UX:*:*) + GUESS=m68k-apple-aux$UNAME_RELEASE + ;; + news*:NEWS-OS:6*:*) + GUESS=mips-sony-newsos6 + ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if test -d /usr/nec; then + GUESS=mips-nec-sysv$UNAME_RELEASE + else + GUESS=mips-unknown-sysv$UNAME_RELEASE + fi + ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + GUESS=powerpc-be-beos + ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + GUESS=powerpc-apple-beos + ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + GUESS=i586-pc-beos + ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + GUESS=i586-pc-haiku + ;; + ppc:Haiku:*:*) # Haiku running on Apple PowerPC + GUESS=powerpc-apple-haiku + ;; + *:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat) + GUESS=$UNAME_MACHINE-unknown-haiku + ;; + SX-4:SUPER-UX:*:*) + GUESS=sx4-nec-superux$UNAME_RELEASE + ;; + SX-5:SUPER-UX:*:*) + GUESS=sx5-nec-superux$UNAME_RELEASE + ;; + SX-6:SUPER-UX:*:*) + GUESS=sx6-nec-superux$UNAME_RELEASE + ;; + SX-7:SUPER-UX:*:*) + GUESS=sx7-nec-superux$UNAME_RELEASE + ;; + SX-8:SUPER-UX:*:*) + GUESS=sx8-nec-superux$UNAME_RELEASE + ;; + SX-8R:SUPER-UX:*:*) + GUESS=sx8r-nec-superux$UNAME_RELEASE + ;; + SX-ACE:SUPER-UX:*:*) + GUESS=sxace-nec-superux$UNAME_RELEASE + ;; + Power*:Rhapsody:*:*) + GUESS=powerpc-apple-rhapsody$UNAME_RELEASE + ;; + *:Rhapsody:*:*) + GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE + ;; + arm64:Darwin:*:*) + GUESS=aarch64-apple-darwin$UNAME_RELEASE + ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + if command -v xcode-select > /dev/null 2> /dev/null && \ + ! xcode-select --print-path > /dev/null 2> /dev/null ; then + # Avoid executing cc if there is no toolchain installed as + # cc will be a stub that puts up a graphical alert + # prompting the user to install developer tools. + CC_FOR_BUILD=no_compiler_found + else + set_cc_for_build + fi + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # uname -m returns i386 or x86_64 + UNAME_PROCESSOR=$UNAME_MACHINE + fi + GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE + ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = x86; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE + ;; + *:QNX:*:4*) + GUESS=i386-pc-qnx + ;; + NEO-*:NONSTOP_KERNEL:*:*) + GUESS=neo-tandem-nsk$UNAME_RELEASE + ;; + NSE-*:NONSTOP_KERNEL:*:*) + GUESS=nse-tandem-nsk$UNAME_RELEASE + ;; + NSR-*:NONSTOP_KERNEL:*:*) + GUESS=nsr-tandem-nsk$UNAME_RELEASE + ;; + NSV-*:NONSTOP_KERNEL:*:*) + GUESS=nsv-tandem-nsk$UNAME_RELEASE + ;; + NSX-*:NONSTOP_KERNEL:*:*) + GUESS=nsx-tandem-nsk$UNAME_RELEASE + ;; + *:NonStop-UX:*:*) + GUESS=mips-compaq-nonstopux + ;; + BS2000:POSIX*:*:*) + GUESS=bs2000-siemens-sysv + ;; + DS/*:UNIX_System_V:*:*) + GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE + ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "${cputype-}" = 386; then + UNAME_MACHINE=i386 + elif test "x${cputype-}" != x; then + UNAME_MACHINE=$cputype + fi + GUESS=$UNAME_MACHINE-unknown-plan9 + ;; + *:TOPS-10:*:*) + GUESS=pdp10-unknown-tops10 + ;; + *:TENEX:*:*) + GUESS=pdp10-unknown-tenex + ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + GUESS=pdp10-dec-tops20 + ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + GUESS=pdp10-xkl-tops20 + ;; + *:TOPS-20:*:*) + GUESS=pdp10-unknown-tops20 + ;; + *:ITS:*:*) + GUESS=pdp10-unknown-its + ;; + SEI:*:*:SEIUX) + GUESS=mips-sei-seiux$UNAME_RELEASE + ;; + *:DragonFly:*:*) + DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL + ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case $UNAME_MACHINE in + A*) GUESS=alpha-dec-vms ;; + I*) GUESS=ia64-dec-vms ;; + V*) GUESS=vax-dec-vms ;; + esac ;; + *:XENIX:*:SysV) + GUESS=i386-pc-xenix + ;; + i*86:skyos:*:*) + SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'` + GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL + ;; + i*86:rdos:*:*) + GUESS=$UNAME_MACHINE-pc-rdos + ;; + i*86:Fiwix:*:*) + GUESS=$UNAME_MACHINE-pc-fiwix + ;; + *:AROS:*:*) + GUESS=$UNAME_MACHINE-unknown-aros + ;; + x86_64:VMkernel:*:*) + GUESS=$UNAME_MACHINE-unknown-esx + ;; + amd64:Isilon\ OneFS:*:*) + GUESS=x86_64-unknown-onefs + ;; + *:Unleashed:*:*) + GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE + ;; +esac + +# Do we have a guess based on uname results? +if test "x$GUESS" != x; then + echo "$GUESS" + exit +fi + +# No uname command or uname output not recognized. +set_cc_for_build +cat > "$dummy.c" < +#include +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#include +#if defined(_SIZE_T_) || defined(SIGLOST) +#include +#endif +#endif +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); +#endif + +#if defined (vax) +#if !defined (ultrix) +#include +#if defined (BSD) +#if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +#else +#if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#endif +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#else +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname un; + uname (&un); + printf ("vax-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname *un; + uname (&un); + printf ("mips-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("mips-dec-ultrix\n"); exit (0); +#endif +#endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. +test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } + +echo "$0: unable to guess system type" >&2 + +case $UNAME_MACHINE:$UNAME_SYSTEM in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&2 <&2 </dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" +EOF +fi + +exit 1 + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/build-aux/config.sub b/build-aux/config.sub new file mode 100755 index 0000000..b41da55 --- /dev/null +++ b/build-aux/config.sub @@ -0,0 +1,1890 @@ +#!/usr/bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2022 Free Software Foundation, Inc. + +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2022-01-03' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + +Canonicalize a configuration name. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2022 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo "$1" + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Split fields of configuration type +# shellcheck disable=SC2162 +saved_IFS=$IFS +IFS="-" read field1 field2 field3 field4 <&2 + exit 1 + ;; + *-*-*-*) + basic_machine=$field1-$field2 + basic_os=$field3-$field4 + ;; + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + basic_os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + basic_os=linux-android + ;; + *) + basic_machine=$field1-$field2 + basic_os=$field3 + ;; + esac + ;; + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + basic_os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + basic_os=$field2 + ;; + zephyr*) + basic_machine=$field1-unknown + basic_os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | convergent* | ncr* | news | 32* | 3600* | 3100* \ + | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ + | ultra | tti* | harris | dolphin | highlevel | gould \ + | cbm | ns | masscomp | apple | axis | knuth | cray \ + | microblaze* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + basic_os= + ;; + *) + basic_machine=$field1 + basic_os=$field2 + ;; + esac + ;; + esac + ;; + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + basic_os=bsd + ;; + a29khif) + basic_machine=a29k-amd + basic_os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + basic_os=scout + ;; + alliant) + basic_machine=fx80-alliant + basic_os= + ;; + altos | altos3068) + basic_machine=m68k-altos + basic_os= + ;; + am29k) + basic_machine=a29k-none + basic_os=bsd + ;; + amdahl) + basic_machine=580-amdahl + basic_os=sysv + ;; + amiga) + basic_machine=m68k-unknown + basic_os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + basic_os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + basic_os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + basic_os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + basic_os=bsd + ;; + aros) + basic_machine=i386-pc + basic_os=aros + ;; + aux) + basic_machine=m68k-apple + basic_os=aux + ;; + balance) + basic_machine=ns32k-sequent + basic_os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + basic_os=linux + ;; + cegcc) + basic_machine=arm-unknown + basic_os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + basic_os=bsd + ;; + convex-c2) + basic_machine=c2-convex + basic_os=bsd + ;; + convex-c32) + basic_machine=c32-convex + basic_os=bsd + ;; + convex-c34) + basic_machine=c34-convex + basic_os=bsd + ;; + convex-c38) + basic_machine=c38-convex + basic_os=bsd + ;; + cray) + basic_machine=j90-cray + basic_os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + basic_os= + ;; + da30) + basic_machine=m68k-da30 + basic_os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + basic_os= + ;; + delta88) + basic_machine=m88k-motorola + basic_os=sysv3 + ;; + dicos) + basic_machine=i686-pc + basic_os=dicos + ;; + djgpp) + basic_machine=i586-pc + basic_os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + basic_os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + basic_os=ose + ;; + gmicro) + basic_machine=tron-gmicro + basic_os=sysv + ;; + go32) + basic_machine=i386-pc + basic_os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + basic_os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + basic_os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + basic_os=hms + ;; + harris) + basic_machine=m88k-harris + basic_os=sysv3 + ;; + hp300 | hp300hpux) + basic_machine=m68k-hp + basic_os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp + basic_os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp + basic_os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + basic_os=proelf + ;; + i386mach) + basic_machine=i386-mach + basic_os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi + basic_os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + basic_os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + basic_os=sysv + ;; + merlin) + basic_machine=ns32k-utek + basic_os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + basic_os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + basic_os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + basic_os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + basic_os=coff + ;; + morphos) + basic_machine=powerpc-unknown + basic_os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + basic_os=moxiebox + ;; + msdos) + basic_machine=i386-pc + basic_os=msdos + ;; + msys) + basic_machine=i686-pc + basic_os=msys + ;; + mvs) + basic_machine=i370-ibm + basic_os=mvs + ;; + nacl) + basic_machine=le32-unknown + basic_os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + basic_os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + basic_os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + basic_os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + basic_os=newsos + ;; + news1000) + basic_machine=m68030-sony + basic_os=newsos + ;; + necv70) + basic_machine=v70-nec + basic_os=sysv + ;; + nh3000) + basic_machine=m68k-harris + basic_os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + basic_os=cxux + ;; + nindy960) + basic_machine=i960-intel + basic_os=nindy + ;; + mon960) + basic_machine=i960-intel + basic_os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + basic_os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + basic_os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + basic_os=ose + ;; + os68k) + basic_machine=m68k-none + basic_os=os68k + ;; + paragon) + basic_machine=i860-intel + basic_os=osf + ;; + parisc) + basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp + ;; + pw32) + basic_machine=i586-unknown + basic_os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + basic_os=rdos + ;; + rdos32) + basic_machine=i386-pc + basic_os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + basic_os=coff + ;; + sa29200) + basic_machine=a29k-amd + basic_os=udi + ;; + sei) + basic_machine=mips-sei + basic_os=seiux + ;; + sequent) + basic_machine=i386-sequent + basic_os= + ;; + sps7) + basic_machine=m68k-bull + basic_os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + basic_os= + ;; + stratus) + basic_machine=i860-stratus + basic_os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + basic_os= + ;; + sun2os3) + basic_machine=m68000-sun + basic_os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + basic_os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + basic_os= + ;; + sun3os3) + basic_machine=m68k-sun + basic_os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + basic_os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + basic_os= + ;; + sun4os3) + basic_machine=sparc-sun + basic_os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + basic_os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + basic_os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + basic_os= + ;; + sv1) + basic_machine=sv1-cray + basic_os=unicos + ;; + symmetry) + basic_machine=i386-sequent + basic_os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + basic_os=unicos + ;; + t90) + basic_machine=t90-cray + basic_os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + basic_os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + basic_os=tpf + ;; + udi29k) + basic_machine=a29k-amd + basic_os=udi + ;; + ultra3) + basic_machine=a29k-nyu + basic_os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + basic_os=none + ;; + vaxv) + basic_machine=vax-dec + basic_os=sysv + ;; + vms) + basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta + ;; + vxworks960) + basic_machine=i960-wrs + basic_os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + basic_os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + basic_os=vxworks + ;; + xbox) + basic_machine=i686-pc + basic_os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + basic_os=unicos + ;; + *) + basic_machine=$1 + basic_os= + ;; + esac + ;; +esac + +# Decode 1-component or ad-hoc basic machines +case $basic_machine in + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond + ;; + op50n) + cpu=hppa1.1 + vendor=oki + ;; + op60c) + cpu=hppa1.1 + vendor=oki + ;; + ibm*) + cpu=i370 + vendor=ibm + ;; + orion105) + cpu=clipper + vendor=highlevel + ;; + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple + ;; + pmac | pmac-mpw) + cpu=powerpc + vendor=apple + ;; + + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + cpu=m68000 + vendor=att + ;; + 3b*) + cpu=we32k + vendor=att + ;; + bluegene*) + cpu=powerpc + vendor=ibm + basic_os=cnk + ;; + decsystem10* | dec10*) + cpu=pdp10 + vendor=dec + basic_os=tops10 + ;; + decsystem20* | dec20*) + cpu=pdp10 + vendor=dec + basic_os=tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + cpu=m68k + vendor=motorola + ;; + dpx2*) + cpu=m68k + vendor=bull + basic_os=sysv3 + ;; + encore | umax | mmax) + cpu=ns32k + vendor=encore + ;; + elxsi) + cpu=elxsi + vendor=elxsi + basic_os=${basic_os:-bsd} + ;; + fx2800) + cpu=i860 + vendor=alliant + ;; + genix) + cpu=ns32k + vendor=ns + ;; + h3050r* | hiux*) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + cpu=m68000 + vendor=hp + ;; + hp9k3[2-9][0-9]) + cpu=m68k + vendor=hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + i*86v32) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv32 + ;; + i*86v4*) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv4 + ;; + i*86v) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv + ;; + i*86sol2) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=solaris2 + ;; + j90 | j90-cray) + cpu=j90 + vendor=cray + basic_os=${basic_os:-unicos} + ;; + iris | iris4d) + cpu=mips + vendor=sgi + case $basic_os in + irix*) + ;; + *) + basic_os=irix4 + ;; + esac + ;; + miniframe) + cpu=m68000 + vendor=convergent + ;; + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + basic_os=mint + ;; + news-3600 | risc-news) + cpu=mips + vendor=sony + basic_os=newsos + ;; + next | m*-next) + cpu=m68k + vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) + ;; + ns2*) + basic_os=nextstep2 + ;; + *) + basic_os=nextstep3 + ;; + esac + ;; + np1) + cpu=np1 + vendor=gould + ;; + op50n-* | op60c-*) + cpu=hppa1.1 + vendor=oki + basic_os=proelf + ;; + pa-hitachi) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + pbd) + cpu=sparc + vendor=tti + ;; + pbb) + cpu=m68k + vendor=tti + ;; + pc532) + cpu=ns32k + vendor=pc532 + ;; + pn) + cpu=pn + vendor=gould + ;; + power) + cpu=power + vendor=ibm + ;; + ps2) + cpu=i386 + vendor=ibm + ;; + rm[46]00) + cpu=mips + vendor=siemens + ;; + rtpc | rtpc-*) + cpu=romp + vendor=ibm + ;; + sde) + cpu=mipsisa32 + vendor=sde + basic_os=${basic_os:-elf} + ;; + simso-wrs) + cpu=sparclite + vendor=wrs + basic_os=vxworks + ;; + tower | tower-32) + cpu=m68k + vendor=ncr + ;; + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu + ;; + w65) + cpu=w65 + vendor=wdc + ;; + w89k-*) + cpu=hppa1.1 + vendor=winbond + basic_os=proelf + ;; + none) + cpu=none + vendor=none + ;; + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine + ;; + leon-*|leon[3-9]-*) + cpu=sparc + vendor=`echo "$basic_machine" | sed 's/-.*//'` + ;; + + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read cpu vendor <&2 + exit 1 + ;; + esac + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $vendor in + digital*) + vendor=dec + ;; + commodore*) + vendor=cbm + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if test x$basic_os != x +then + +# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just +# set os. +case $basic_os in + gnu/linux*) + kernel=linux + os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` + ;; + os2-emx) + kernel=os2 + os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` + ;; + nto-qnx*) + kernel=nto + os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` + ;; + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read kernel os <&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ + | linux-musl* | linux-relibc* | linux-uclibc* ) + ;; + uclinux-uclibc* ) + ;; + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + vxworks-simlinux | vxworks-simwindows | vxworks-spe) + ;; + nto-qnx*) + ;; + os2-emx) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + exit 1 + ;; +esac + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +case $vendor in + unknown) + case $cpu-$os in + *-riscix*) + vendor=acorn + ;; + *-sunos*) + vendor=sun + ;; + *-cnk* | *-aix*) + vendor=ibm + ;; + *-beos*) + vendor=be + ;; + *-hpux*) + vendor=hp + ;; + *-mpeix*) + vendor=hp + ;; + *-hiux*) + vendor=hitachi + ;; + *-unos*) + vendor=crds + ;; + *-dgux*) + vendor=dg + ;; + *-luna*) + vendor=omron + ;; + *-genix*) + vendor=ns + ;; + *-clix*) + vendor=intergraph + ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) + vendor=ibm + ;; + s390-* | s390x-*) + vendor=ibm + ;; + *-ptx*) + vendor=sequent + ;; + *-tpf*) + vendor=ibm + ;; + *-vxsim* | *-vxworks* | *-windiss*) + vendor=wrs + ;; + *-aux*) + vendor=apple + ;; + *-hms*) + vendor=hitachi + ;; + *-mpw* | *-macos*) + vendor=apple + ;; + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) + vendor=atari + ;; + *-vos*) + vendor=stratus + ;; + esac + ;; +esac + +echo "$cpu-$vendor-${kernel:+$kernel-}$os" +exit + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/install-sh b/build-aux/install-sh similarity index 80% rename from install-sh rename to build-aux/install-sh index 20d8b2e..e046efd 100755 --- a/install-sh +++ b/build-aux/install-sh @@ -1,7 +1,7 @@ -#!/bin/sh +#!/usr/bin/sh # install - install a program, script, or datafile -scriptversion=2018-03-11.20; # UTC +scriptversion=2020-11-14.01; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -69,6 +69,11 @@ posix_mkdir= # Desired mode of installed file. mode=0755 +# Create dirs (including intermediate dirs) using mode 755. +# This is like GNU 'install' as of coreutils 8.32 (2020). +mkdir_umask=22 + +backupsuffix= chgrpcmd= chmodcmd=$chmodprog chowncmd= @@ -99,18 +104,28 @@ Options: --version display version info and exit. -c (ignored) - -C install only if different (preserve the last data modification time) + -C install only if different (preserve data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. + -p pass -p to $cpprog. -s $stripprog installed files. + -S SUFFIX attempt to back up existing files, with suffix SUFFIX. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG + +By default, rm is invoked with -f; when overridden with RMPROG, +it's up to you to specify -f if you want it. + +If -S is not specified, no backups are attempted. + +Email bug reports to bug-automake@gnu.org. +Automake home page: https://www.gnu.org/software/automake/ " while test $# -ne 0; do @@ -137,8 +152,13 @@ while test $# -ne 0; do -o) chowncmd="$chownprog $2" shift;; + -p) cpprog="$cpprog -p";; + -s) stripcmd=$stripprog;; + -S) backupsuffix="$2" + shift;; + -t) is_target_a_directory=always dst_arg=$2 @@ -255,6 +275,10 @@ do dstdir=$dst test -d "$dstdir" dstdir_status=$? + # Don't chown directories that already exist. + if test $dstdir_status = 0; then + chowncmd="" + fi else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command @@ -301,22 +325,6 @@ do if test $dstdir_status != 0; then case $posix_mkdir in '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; - - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac - # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then @@ -326,52 +334,49 @@ do fi posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - # Note that $RANDOM variable is not portable (e.g. dash); Use it - # here however when possible just to lower collision chance. - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + # The $RANDOM variable is not portable (e.g., dash). Use it + # here however when possible just to lower collision chance. + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 + trap ' + ret=$? + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null + exit $ret + ' 0 - # Because "mkdir -p" follows existing symlinks and we likely work - # directly in world-writeable /tmp, make sure that the '$tmpdir' - # directory is successfully created first before we actually test - # 'mkdir -p' feature. - if (umask $mkdir_umask && - $mkdirprog $mkdir_mode "$tmpdir" && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - test_tmpdir="$tmpdir/a" - ls_ld_tmpdir=`ls -ld "$test_tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null - fi - trap '' 0;; - esac;; + # Because "mkdir -p" follows existing symlinks and we likely work + # directly in world-writeable /tmp, make sure that the '$tmpdir' + # directory is successfully created first before we actually test + # 'mkdir -p'. + if (umask $mkdir_umask && + $mkdirprog $mkdir_mode "$tmpdir" && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + test_tmpdir="$tmpdir/a" + ls_ld_tmpdir=`ls -ld "$test_tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null + fi + trap '' 0;; esac if @@ -382,7 +387,7 @@ do then : else - # The umask is ridiculous, or mkdir does not conform to POSIX, + # mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. @@ -411,7 +416,7 @@ do prefixes= else if $posix_mkdir; then - (umask=$mkdir_umask && + (umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 @@ -488,6 +493,13 @@ do then rm -f "$dsttmp" else + # If $backupsuffix is set, and the file being installed + # already exists, attempt a backup. Don't worry if it fails, + # e.g., if mv doesn't support -f. + if test -n "$backupsuffix" && test -f "$dst"; then + $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null + fi + # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || @@ -502,9 +514,9 @@ do # file should still install successfully. { test ! -f "$dst" || - $doit $rmcmd -f "$dst" 2>/dev/null || + $doit $rmcmd "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && - { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + { $doit $rmcmd "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 diff --git a/rogue3/configure.ac b/rogue3/configure.ac index 0ae8def..c05faa1 100644 --- a/rogue3/configure.ac +++ b/rogue3/configure.ac @@ -5,13 +5,13 @@ AC_PREREQ([2.69]) AC_INIT([Rogue],[3.6.4],[elwin@sdf.org],[rogue3]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([Makefile rogue.6 rogue.r]) +AC_CONFIG_AUX_DIR([../build-aux]) # Checks for programs. AC_PROG_CC # Checks for libraries. MP_WITH_CURSES # Checks for header files. -AC_HEADER_STDC AC_CHECK_HEADERS([arpa/inet.h pwd.h errno.h fcntl.h limits.h nlist.h stdlib.h string.h sys/ioctl.h termios.h unistd.h utmp.h utmpx.h term.h ncurses/term.h process.h]) # Checks for typedefs, structures, and compiler characteristics. diff --git a/rogue4/configure.ac b/rogue4/configure.ac index 741fd27..f765e77 100644 --- a/rogue4/configure.ac +++ b/rogue4/configure.ac @@ -6,13 +6,13 @@ AC_INIT([Rogue],[5.2.2],[elwin@sdf.org],[rogue4]) AC_CONFIG_SRCDIR([armor.c]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([Makefile rogue.6 rogue.me]) +AC_CONFIG_AUX_DIR([../build-aux]) # Checks for programs. AC_PROG_CC # Checks for libraries. MP_WITH_CURSES # Checks for header files. -AC_HEADER_STDC AC_CHECK_HEADERS([arpa/inet.h sys/utsname.h pwd.h fcntl.h limits.h nlist.h stdlib.h string.h sys/ioctl.h termios.h unistd.h utmpx.h term.h ncurses/term.h process.h]) # Checks for typedefs, structures, and compiler characteristics. diff --git a/rogue5/configure.ac b/rogue5/configure.ac index d5fc0fb..17f1a12 100644 --- a/rogue5/configure.ac +++ b/rogue5/configure.ac @@ -4,8 +4,9 @@ AC_PREREQ([2.69]) AC_INIT([Rogue],[5.4.5],[elwin@sdf.org],[rogue5]) AC_CONFIG_SRCDIR([armor.c]) -AC_CONFIG_HEADER([config.h]) +AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([Makefile rogue.6 rogue.me rogue.html]) +AC_CONFIG_AUX_DIR([../build-aux]) # Checks for programs. AC_PROG_CC @@ -14,7 +15,6 @@ AC_PROG_INSTALL # Checks for libraries. # Checks for header files. -AC_HEADER_STDC AC_CHECK_HEADERS([arpa/inet.h sys/utsname.h pwd.h fcntl.h limits.h nlist.h stdlib.h string.h sys/ioctl.h termios.h unistd.h utmp.h term.h ncurses/term.h process.h]) # Checks for typedefs, structures, and compiler characteristics. diff --git a/srogue/configure.ac b/srogue/configure.ac index 0c59bb1..292ec62 100644 --- a/srogue/configure.ac +++ b/srogue/configure.ac @@ -5,13 +5,13 @@ AC_PREREQ([2.69]) AC_INIT([Super-Rogue],[9.0],[elwin@sdf.org],[srogue]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([Makefile]) +AC_CONFIG_AUX_DIR([../build-aux]) # Checks for programs. AC_PROG_CC # Checks for libraries. MP_WITH_CURSES # Checks for header files. -AC_HEADER_STDC AC_CHECK_HEADERS([arpa/inet.h pwd.h errno.h fcntl.h limits.h nlist.h stdlib.h string.h sys/ioctl.h termios.h unistd.h term.h ncurses/term.h process.h]) # Checks for typedefs, structures, and compiler characteristics. diff --git a/urogue/configure.ac b/urogue/configure.ac index dcb619f..0486732 100644 --- a/urogue/configure.ac +++ b/urogue/configure.ac @@ -5,13 +5,13 @@ AC_PREREQ([2.69]) AC_INIT([UltraRogue],[1.07],[elwin@sdf.org],[urogue]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([Makefile]) +AC_CONFIG_AUX_DIR([../build-aux]) # Checks for programs. AC_PROG_CC # Checks for libraries. MP_WITH_CURSES # Checks for header files. -AC_HEADER_STDC AC_CHECK_HEADERS([pwd.h errno.h fcntl.h limits.h nlist.h stdlib.h string.h sys/ioctl.h termios.h unistd.h utmp.h utmpx.h term.h ncurses/term.h process.h arpa/inet.h]) # Checks for typedefs, structures, and compiler characteristics. diff --git a/xrogue/configure.ac b/xrogue/configure.ac index 8638a42..6ad32df 100644 --- a/xrogue/configure.ac +++ b/xrogue/configure.ac @@ -5,13 +5,13 @@ AC_PREREQ([2.69]) AC_INIT([XRogue],[8.0.3],[elwin@sdf.org],[xrogue]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([Makefile]) +AC_CONFIG_AUX_DIR([../build-aux]) # Checks for programs. AC_PROG_CC # Checks for libraries. MP_WITH_CURSES # Checks for header files. -AC_HEADER_STDC AC_CHECK_HEADERS([pwd.h errno.h fcntl.h limits.h stdlib.h string.h sys/ioctl.h sys/utsname.h termios.h unistd.h term.h ncurses/term.h process.h arpa/inet.h]) # Checks for typedefs, structures, and compiler characteristics.