mirror of
https://github.com/mirror/make.git
synced 2024-12-27 13:20:34 +08:00
Some Windows fixes to allow builds to succeed.
This commit is contained in:
parent
19b6504f8a
commit
e54dfb4284
12
ChangeLog
12
ChangeLog
@ -1,3 +1,15 @@
|
||||
2007-10-10 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* dir.c (find_directory) [WINDOWS32]: Remove trailing slashes from
|
||||
pathnames, with const strings.
|
||||
* build_w32.bat [WINDOWS32]: If no config.h.W32 exists, create one
|
||||
from the template (used for building from CVS, not a dist).
|
||||
|
||||
2007-10-10 Paul Smith <psmith@gnu.org>
|
||||
|
||||
* make.h: Add a prototype for w32_kill() (change suggested by
|
||||
Yongwei Wu <wuyongwei@gmail.com>).
|
||||
|
||||
2007-08-15 Paul Smith <psmith@gnu.org>
|
||||
|
||||
* doc/make.texi (GNU Free Documentation License): The fdl.texi
|
||||
|
@ -16,6 +16,11 @@ rem
|
||||
rem You should have received a copy of the GNU General Public License along
|
||||
rem with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
if exist config.h.W32 GoTo NotCVS
|
||||
sed -n "s/^AC_INIT(\[GNU make\],\[\([^]]\+\)\].*/s,%%VERSION%%,\1,g/p" configure.in > config.h.W32.sed
|
||||
echo s,%%PACKAGE%%,make,g >> config.h.W32.sed
|
||||
sed -f config.h.W32.sed config.h.W32.template > config.h.W32
|
||||
:NotCVS
|
||||
if not exist config.h copy config.h.W32 config.h
|
||||
cd w32\subproc
|
||||
echo "Creating the subproc library"
|
||||
|
31
dir.c
31
dir.c
@ -454,26 +454,29 @@ find_directory (const char *name)
|
||||
/* The directory is not in the name hash table.
|
||||
Find its device and inode numbers, and look it up by them. */
|
||||
|
||||
#ifdef WINDOWS32
|
||||
/* Remove any trailing '\'. Windows32 stat fails even on valid
|
||||
directories if they end in '\'. */
|
||||
if (p[-1] == '\\')
|
||||
p[-1] = '\0';
|
||||
#endif
|
||||
|
||||
#ifdef VMS
|
||||
r = vmsstat_dir (name, &st);
|
||||
#elif defined(WINDOWS32)
|
||||
{
|
||||
char tem[MAXPATHLEN], *tstart, *tend;
|
||||
|
||||
/* Remove any trailing slashes. Windows32 stat fails even on
|
||||
valid directories if they end in a slash. */
|
||||
memcpy (tem, name, p - name + 1);
|
||||
tstart = tem;
|
||||
if (tstart[1] == ':')
|
||||
tstart += 2;
|
||||
for (tend = tem + (p - name - 1);
|
||||
tend > tstart && (*tend == '/' || *tend == '\\');
|
||||
tend--)
|
||||
*tend = '\0';
|
||||
|
||||
r = stat (tem, &st);
|
||||
}
|
||||
#else
|
||||
EINTRLOOP (r, stat (name, &st));
|
||||
#endif
|
||||
|
||||
#ifdef WINDOWS32
|
||||
/* Put back the trailing '\'. If we don't, we're permanently
|
||||
truncating the value! */
|
||||
if (p[-1] == '\0')
|
||||
p[-1] = '\\';
|
||||
#endif
|
||||
|
||||
if (r < 0)
|
||||
{
|
||||
/* Couldn't stat the directory. Mark this by
|
||||
|
2
make.h
2
make.h
@ -329,7 +329,7 @@ char *strsignal (int signum);
|
||||
# define kill(_pid,_sig) w32_kill((_pid),(_sig))
|
||||
|
||||
void sync_Path_environment (void);
|
||||
int kill (int pid, int sig);
|
||||
int w32_kill (int pid, int sig);
|
||||
char *end_of_token_w32 (const char *s, char stopchar);
|
||||
int find_and_set_default_shell (const char *token);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user