mirror of
https://git.savannah.gnu.org/git/make.git
synced 2024-12-27 14:57:17 +00:00
Some Windows fixes to allow builds to succeed.
This commit is contained in:
parent
19b6504f8a
commit
e54dfb4284
4 changed files with 35 additions and 15 deletions
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>
|
2007-08-15 Paul Smith <psmith@gnu.org>
|
||||||
|
|
||||||
* doc/make.texi (GNU Free Documentation License): The fdl.texi
|
* 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 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/>.
|
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
|
if not exist config.h copy config.h.W32 config.h
|
||||||
cd w32\subproc
|
cd w32\subproc
|
||||||
echo "Creating the subproc library"
|
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.
|
/* The directory is not in the name hash table.
|
||||||
Find its device and inode numbers, and look it up by them. */
|
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
|
#ifdef VMS
|
||||||
r = vmsstat_dir (name, &st);
|
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
|
#else
|
||||||
EINTRLOOP (r, stat (name, &st));
|
EINTRLOOP (r, stat (name, &st));
|
||||||
#endif
|
#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)
|
if (r < 0)
|
||||||
{
|
{
|
||||||
/* Couldn't stat the directory. Mark this by
|
/* 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))
|
# define kill(_pid,_sig) w32_kill((_pid),(_sig))
|
||||||
|
|
||||||
void sync_Path_environment (void);
|
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);
|
char *end_of_token_w32 (const char *s, char stopchar);
|
||||||
int find_and_set_default_shell (const char *token);
|
int find_and_set_default_shell (const char *token);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue