From cc44a3e62f84206e4314466c718d69208ae54a9f Mon Sep 17 00:00:00 2001 From: Kern Sibbald Date: Tue, 3 May 2005 12:51:31 +0000 Subject: [PATCH] Move winapi.h/c from findlib to lib for inclusion in multiple places git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@1980 91ce42f0-d328-0410-95d8-f526ca767f89 --- bacula/src/filed/win32/winmain.cpp | 2 +- bacula/src/findlib/attribs.c | 179 +++++++++++---------- bacula/src/findlib/bfile.h | 2 +- bacula/src/lib/winapi.c | 72 +++++++++ bacula/src/lib/winapi.h | 139 ++++++++++++++++ bacula/src/stored/spool.c | 8 +- bacula/src/version.h | 4 +- bacula/src/win32/baculafd/baculafd.dep | 52 +++--- bacula/src/win32/baculafd/baculafd.mak | 2 +- bacula/src/win32/compat/compat.cpp | 2 +- bacula/src/win32/compat/compat.h | 7 - bacula/src/win32/console/bconsole.mak.in | 146 +++++++++++++++++ bacula/src/win32/console/console.mak | 15 +- bacula/src/win32/console/filelist | 37 +++++ bacula/src/win32/console/genmake.sh | 16 ++ bacula/src/win32/lib/winapi.cpp | 1 + bacula/src/win32/wx-console/filelist | 1 + bacula/src/win32/wx-console/wx-console.mak | 25 +++ 18 files changed, 576 insertions(+), 134 deletions(-) create mode 100644 bacula/src/lib/winapi.c create mode 100644 bacula/src/lib/winapi.h create mode 100755 bacula/src/win32/console/bconsole.mak.in create mode 100644 bacula/src/win32/console/filelist create mode 100644 bacula/src/win32/console/genmake.sh create mode 100644 bacula/src/win32/lib/winapi.cpp diff --git a/bacula/src/filed/win32/winmain.cpp b/bacula/src/filed/win32/winmain.cpp index 95b843da62..26ae82ad80 100755 --- a/bacula/src/filed/win32/winmain.cpp +++ b/bacula/src/filed/win32/winmain.cpp @@ -32,7 +32,7 @@ #include "winservice.h" #include #include -#include "../../findlib/winapi.h" +#include "../../lib/winapi.h" extern int BaculaMain(int argc, char *argv[]); extern void terminate_filed(int sig); diff --git a/bacula/src/findlib/attribs.c b/bacula/src/findlib/attribs.c index 3079d00cc4..90db4b21af 100755 --- a/bacula/src/findlib/attribs.c +++ b/bacula/src/findlib/attribs.c @@ -33,7 +33,8 @@ #if defined(HAVE_CYGWIN) || defined(HAVE_WIN32) -#include "compat.h" +#include "../lib/winapi.h" + /* Forward referenced subroutines */ static bool set_win32_attributes(JCR *jcr, ATTR *attr, BFILE *ofd); @@ -48,9 +49,9 @@ HANDLE bget_handle(BFILE *bfd); #endif /*=============================================================*/ -/* */ -/* *** A l l S y s t e m s *** */ -/* */ +/* */ +/* *** A l l S y s t e m s *** */ +/* */ /*=============================================================*/ /* @@ -72,11 +73,11 @@ int select_data_stream(FF_PKT *ff_pkt) #ifdef HAVE_LIBZ if (ff_pkt->flags & FO_GZIP) { if (stream == STREAM_WIN32_DATA) { - stream = STREAM_WIN32_GZIP_DATA; + stream = STREAM_WIN32_GZIP_DATA; } else if (stream == STREAM_FILE_DATA) { - stream = STREAM_GZIP_DATA; + stream = STREAM_GZIP_DATA; } else { - stream = STREAM_SPARSE_GZIP_DATA; + stream = STREAM_SPARSE_GZIP_DATA; } } #endif @@ -101,7 +102,7 @@ void encode_stat(char *buf, FF_PKT *ff_pkt, int data_stream) struct stat *statp = &ff_pkt->statp; /* * Encode a stat packet. I should have done this more intelligently - * with a length so that it could be easily expanded. + * with a length so that it could be easily expanded. */ p += to_base64((int64_t)statp->st_dev, p); *p++ = ' '; /* separate fields with a space */ @@ -154,7 +155,7 @@ void encode_stat(char *buf, FF_PKT *ff_pkt, int data_stream) /* Do casting according to unknown type to keep compiler happy */ #if !HAVE_GCC & HAVE_SUN_OS -#define plug(st, val) st = val /* brain damaged compiler */ +#define plug(st, val) st = val /* brain damaged compiler */ #else template void plug(T &st, uint64_t val) { st = static_cast(val); } @@ -252,32 +253,32 @@ int32_t decode_LinkFI(char *buf, struct stat *statp) char *p = buf; int64_t val; - skip_nonspaces(&p); /* st_dev */ - p++; /* skip space */ - skip_nonspaces(&p); /* st_ino */ + skip_nonspaces(&p); /* st_dev */ + p++; /* skip space */ + skip_nonspaces(&p); /* st_ino */ p++; p += from_base64(&val, p); - plug(statp->st_mode, val); /* st_mode */ + plug(statp->st_mode, val); /* st_mode */ p++; - skip_nonspaces(&p); /* st_nlink */ + skip_nonspaces(&p); /* st_nlink */ p++; - skip_nonspaces(&p); /* st_uid */ + skip_nonspaces(&p); /* st_uid */ p++; - skip_nonspaces(&p); /* st_gid */ + skip_nonspaces(&p); /* st_gid */ p++; - skip_nonspaces(&p); /* st_rdev */ + skip_nonspaces(&p); /* st_rdev */ p++; - skip_nonspaces(&p); /* st_size */ + skip_nonspaces(&p); /* st_size */ p++; - skip_nonspaces(&p); /* st_blksize */ + skip_nonspaces(&p); /* st_blksize */ p++; - skip_nonspaces(&p); /* st_blocks */ + skip_nonspaces(&p); /* st_blocks */ p++; - skip_nonspaces(&p); /* st_atime */ + skip_nonspaces(&p); /* st_atime */ p++; - skip_nonspaces(&p); /* st_mtime */ + skip_nonspaces(&p); /* st_mtime */ p++; - skip_nonspaces(&p); /* st_ctime */ + skip_nonspaces(&p); /* st_ctime */ /* Optional FileIndex of hard linked file data */ if (*p == ' ' || (*p != 0 && *(p+1) == ' ')) { @@ -295,7 +296,7 @@ int32_t decode_LinkFI(char *buf, struct stat *statp) * ofile is the output filename (may be in a different directory) * * Returns: true on success - * false on failure + * false on failure */ bool set_attributes(JCR *jcr, ATTR *attr, BFILE *ofd) { @@ -308,7 +309,7 @@ bool set_attributes(JCR *jcr, ATTR *attr, BFILE *ofd) if (attr->stream == STREAM_UNIX_ATTRIBUTES_EX && set_win32_attributes(jcr, attr, ofd)) { if (is_bopen(ofd)) { - bclose(ofd); + bclose(ofd); } pm_strcpy(attr->ofname, "*none*"); return true; @@ -316,7 +317,7 @@ bool set_attributes(JCR *jcr, ATTR *attr, BFILE *ofd) if (attr->data_stream == STREAM_WIN32_DATA || attr->data_stream == STREAM_WIN32_GZIP_DATA) { if (is_bopen(ofd)) { - bclose(ofd); + bclose(ofd); } pm_strcpy(attr->ofname, "*none*"); return true; @@ -334,11 +335,11 @@ bool set_attributes(JCR *jcr, ATTR *attr, BFILE *ofd) if (is_bopen(ofd)) { char ec1[50], ec2[50]; fsize = blseek(ofd, 0, SEEK_CUR); - bclose(ofd); /* first close file */ - if (fsize > 0 && fsize != attr->statp.st_size) { + bclose(ofd); /* first close file */ + if (fsize > 0 && fsize != (off_t)attr->statp.st_size) { Jmsg3(jcr, M_ERROR, 0, _("File size of restored file %s not correct. Original %s, restored %s.\n"), - attr->ofname, edit_uint64(attr->statp.st_size, ec1), - edit_uint64(fsize, ec2)); + attr->ofname, edit_uint64(attr->statp.st_size, ec1), + edit_uint64(fsize, ec2)); } } @@ -348,38 +349,38 @@ bool set_attributes(JCR *jcr, ATTR *attr, BFILE *ofd) /* ***FIXME**** optimize -- don't do if already correct */ /* * For link, change owner of link using lchown, but don't - * try to do a chmod as that will update the file behind it. + * try to do a chmod as that will update the file behind it. */ if (attr->type == FT_LNK) { /* Change owner of link, not of real file */ if (lchown(attr->ofname, attr->statp.st_uid, attr->statp.st_gid) < 0) { - berrno be; + berrno be; Jmsg2(jcr, M_ERROR, 0, _("Unable to set file owner %s: ERR=%s\n"), - attr->ofname, be.strerror()); - ok = false; + attr->ofname, be.strerror()); + ok = false; } } else { if (chown(attr->ofname, attr->statp.st_uid, attr->statp.st_gid) < 0) { - berrno be; + berrno be; Jmsg2(jcr, M_ERROR, 0, _("Unable to set file owner %s: ERR=%s\n"), - attr->ofname, be.strerror()); - ok = false; + attr->ofname, be.strerror()); + ok = false; } if (chmod(attr->ofname, attr->statp.st_mode) < 0) { - berrno be; + berrno be; Jmsg2(jcr, M_ERROR, 0, _("Unable to set file modes %s: ERR=%s\n"), - attr->ofname, be.strerror()); - ok = false; + attr->ofname, be.strerror()); + ok = false; } /* * Reset file times. */ if (utime(attr->ofname, &ut) < 0) { - berrno be; + berrno be; Jmsg2(jcr, M_ERROR, 0, _("Unable to set file times %s: ERR=%s\n"), - attr->ofname, be.strerror()); - ok = false; + attr->ofname, be.strerror()); + ok = false; } #ifdef HAVE_CHFLAGS /* @@ -390,10 +391,10 @@ bool set_attributes(JCR *jcr, ATTR *attr, BFILE *ofd) * fail. */ if (chflags(attr->ofname, attr->statp.st_flags) < 0) { - berrno be; + berrno be; Jmsg2(jcr, M_ERROR, 0, _("Unable to set file flags %s: ERR=%s\n"), - attr->ofname, be.strerror()); - ok = false; + attr->ofname, be.strerror()); + ok = false; } #endif } @@ -404,9 +405,9 @@ bool set_attributes(JCR *jcr, ATTR *attr, BFILE *ofd) /*=============================================================*/ -/* */ -/* * * * U n i x * * * * */ -/* */ +/* */ +/* * * * U n i x * * * * */ +/* */ /*=============================================================*/ #if !defined(HAVE_CYGWIN) && !defined(HAVE_WIN32) @@ -417,7 +418,7 @@ bool set_attributes(JCR *jcr, ATTR *attr, BFILE *ofd) * here. They must be "self-contained" (i.e. you keep track * of your own length), and they must be in ASCII string * format. Using this feature is not recommended. - * The code below shows how to return nothing. See the Win32 + * The code below shows how to return nothing. See the Win32 * code below for returning something in the attributes. */ int encode_attribsEx(JCR *jcr, char *attribsEx, FF_PKT *ff_pkt) @@ -434,7 +435,7 @@ int encode_attribsEx(JCR *jcr, char *attribsEx, FF_PKT *ff_pkt) } *p = 0; #else - *attribsEx = 0; /* no extended attributes */ + *attribsEx = 0; /* no extended attributes */ #endif return STREAM_UNIX_ATTRIBUTES; } @@ -444,9 +445,9 @@ int encode_attribsEx(JCR *jcr, char *attribsEx, FF_PKT *ff_pkt) /*=============================================================*/ -/* */ -/* * * * W i n 3 2 * * * * */ -/* */ +/* */ +/* * * * W i n 3 2 * * * * */ +/* */ /*=============================================================*/ #if defined(HAVE_CYGWIN) || defined(HAVE_WIN32) @@ -457,31 +458,31 @@ int encode_attribsEx(JCR *jcr, char *attribsEx, FF_PKT *ff_pkt) WIN32_FILE_ATTRIBUTE_DATA atts; ULARGE_INTEGER li; - attribsEx[0] = 0; /* no extended attributes */ + attribsEx[0] = 0; /* no extended attributes */ // try unicode version - if (p_GetFileAttributesExW) { + if (p_GetFileAttributesExW) { unix_name_to_win32(&ff_pkt->sys_fname, ff_pkt->fname); WCHAR szBuf[MAX_PATH_UNICODE]; UTF8_2_wchar(szBuf, ff_pkt->sys_fname, MAX_PATH_UNICODE); if (!p_GetFileAttributesExW(szBuf, GetFileExInfoStandard, - (LPVOID)&atts)) { + (LPVOID)&atts)) { win_error(jcr, "GetFileAttributesExW:", ff_pkt->sys_fname); - return STREAM_UNIX_ATTRIBUTES; + return STREAM_UNIX_ATTRIBUTES; } } else { if (!p_GetFileAttributesExA) - return STREAM_UNIX_ATTRIBUTES; + return STREAM_UNIX_ATTRIBUTES; unix_name_to_win32(&ff_pkt->sys_fname, ff_pkt->fname); if (!p_GetFileAttributesExA(ff_pkt->sys_fname, GetFileExInfoStandard, - (LPVOID)&atts)) { + (LPVOID)&atts)) { win_error(jcr, "GetFileAttributesExA:", ff_pkt->sys_fname); - return STREAM_UNIX_ATTRIBUTES; + return STREAM_UNIX_ATTRIBUTES; } } @@ -515,7 +516,7 @@ int encode_attribsEx(JCR *jcr, char *attribsEx, FF_PKT *ff_pkt) FILE_ATTRIBUTE_OFFLINE| \ FILE_ATTRIBUTE_READONLY| \ FILE_ATTRIBUTE_SYSTEM| \ - FILE_ATTRIBUTE_TEMPORARY) + FILE_ATTRIBUTE_TEMPORARY) /* @@ -525,7 +526,7 @@ int encode_attribsEx(JCR *jcr, char *attribsEx, FF_PKT *ff_pkt) * ofile is the output filename (may be in a different directory) * * Returns: true on success - * false on failure + * false on failure */ static bool set_win32_attributes(JCR *jcr, ATTR *attr, BFILE *ofd) { @@ -539,10 +540,10 @@ static bool set_win32_attributes(JCR *jcr, ATTR *attr, BFILE *ofd) if (!(p_SetFileAttributesW || p_SetFileAttributesA)) return false; - if (!p || !*p) { /* we should have attributes */ + if (!p || !*p) { /* we should have attributes */ Dmsg2(100, "Attributes missing. of=%s ofd=%d\n", attr->ofname, ofd->fid); if (is_bopen(ofd)) { - bclose(ofd); + bclose(ofd); } return false; } else { @@ -551,17 +552,17 @@ static bool set_win32_attributes(JCR *jcr, ATTR *attr, BFILE *ofd) p += from_base64(&val, p); plug(atts.dwFileAttributes, val); - p++; /* skip space */ + p++; /* skip space */ p += from_base64(&val, p); li.QuadPart = val; atts.ftCreationTime.dwLowDateTime = li.LowPart; atts.ftCreationTime.dwHighDateTime = li.HighPart; - p++; /* skip space */ + p++; /* skip space */ p += from_base64(&val, p); li.QuadPart = val; atts.ftLastAccessTime.dwLowDateTime = li.LowPart; atts.ftLastAccessTime.dwHighDateTime = li.HighPart; - p++; /* skip space */ + p++; /* skip space */ p += from_base64(&val, p); li.QuadPart = val; atts.ftLastWriteTime.dwLowDateTime = li.LowPart; @@ -583,15 +584,15 @@ static bool set_win32_attributes(JCR *jcr, ATTR *attr, BFILE *ofd) if (!is_bopen(ofd)) { Dmsg1(100, "File not open: %s\n", attr->ofname); - bopen(ofd, attr->ofname, O_WRONLY|O_BINARY, 0); /* attempt to open the file */ + bopen(ofd, attr->ofname, O_WRONLY|O_BINARY, 0); /* attempt to open the file */ } if (is_bopen(ofd)) { Dmsg1(100, "SetFileTime %s\n", attr->ofname); if (!SetFileTime(bget_handle(ofd), - &atts.ftCreationTime, - &atts.ftLastAccessTime, - &atts.ftLastWriteTime)) { + &atts.ftCreationTime, + &atts.ftLastAccessTime, + &atts.ftLastWriteTime)) { win_error(jcr, "SetFileTime:", win32_ofile); } bclose(ofd); @@ -606,12 +607,12 @@ static bool set_win32_attributes(JCR *jcr, ATTR *attr, BFILE *ofd) if (!SetFileAttributesW(szBuf, atts.dwFileAttributes & SET_ATTRS)) { win_error(jcr, "SetFileAttributesW:", win32_ofile); - } + } } else { if (!SetFileAttributes(win32_ofile, atts.dwFileAttributes & SET_ATTRS)) { win_error(jcr, "SetFileAttributesA:", win32_ofile); - } + } } } free_pool_memory(win32_ofile); @@ -623,13 +624,13 @@ void win_error(JCR *jcr, char *prefix, POOLMEM *win32_ofile) DWORD lerror = GetLastError(); LPTSTR msg; FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER| - FORMAT_MESSAGE_FROM_SYSTEM, - NULL, - lerror, - 0, - (LPTSTR)&msg, - 0, - NULL); + FORMAT_MESSAGE_FROM_SYSTEM, + NULL, + lerror, + 0, + (LPTSTR)&msg, + 0, + NULL); Dmsg3(100, "Error in %s on file %s: ERR=%s\n", prefix, win32_ofile, msg); strip_trailing_junk(msg); Jmsg(jcr, M_ERROR, 0, _("Error in %s file %s: ERR=%s\n"), prefix, win32_ofile, msg); @@ -640,13 +641,13 @@ void win_error(JCR *jcr, char *prefix, DWORD lerror) { LPTSTR msg; FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER| - FORMAT_MESSAGE_FROM_SYSTEM, - NULL, - lerror, - 0, - (LPTSTR)&msg, - 0, - NULL); + FORMAT_MESSAGE_FROM_SYSTEM, + NULL, + lerror, + 0, + (LPTSTR)&msg, + 0, + NULL); strip_trailing_junk(msg); if (jcr) { Jmsg2(jcr, M_ERROR, 0, _("Error in %s: ERR=%s\n"), prefix, msg); @@ -667,4 +668,4 @@ void unix_name_to_win32(POOLMEM **win32_name, char *name) cygwin_conv_to_win32_path(name, *win32_name); } -#endif /* HAVE_CYGWIN */ +#endif /* HAVE_CYGWIN */ diff --git a/bacula/src/findlib/bfile.h b/bacula/src/findlib/bfile.h index 544b596311..a38e53c1c1 100644 --- a/bacula/src/findlib/bfile.h +++ b/bacula/src/findlib/bfile.h @@ -50,7 +50,7 @@ struct Python_IO { #if defined(HAVE_CYGWIN) || defined(HAVE_WIN32) #include -#include "winapi.h" +#include "../lib/winapi.h" enum { BF_CLOSED, diff --git a/bacula/src/lib/winapi.c b/bacula/src/lib/winapi.c new file mode 100644 index 0000000000..ea8a5a02ef --- /dev/null +++ b/bacula/src/lib/winapi.c @@ -0,0 +1,72 @@ +/* + * Windows APIs that are different for each system. + * We use pointers to the entry points so that a + * single binary will run on all Windows systems. + * + * Kern Sibbald MMIII + */ +/* + Copyright (C) 2000-2005 Kern Sibbald + + This program 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 2 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, write to the Free + Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA. + + */ + +#include "bacula.h" + +#if defined(HAVE_CYGWIN) || defined(HAVE_WIN32) + +#include "winapi.h" + +/* API Pointers */ + +t_OpenProcessToken p_OpenProcessToken = NULL; +t_AdjustTokenPrivileges p_AdjustTokenPrivileges = NULL; +t_LookupPrivilegeValue p_LookupPrivilegeValue = NULL; + +t_SetProcessShutdownParameters p_SetProcessShutdownParameters = NULL; + +t_CreateFileA p_CreateFileA = NULL; +t_CreateFileW p_CreateFileW = NULL; + +t_wunlink p_wunlink = NULL; +t_wmkdir p_wmkdir = NULL; +t_wopen p_wopen = NULL; +t_GetFileAttributesA p_GetFileAttributesA = NULL; +t_GetFileAttributesW p_GetFileAttributesW = NULL; + +t_GetFileAttributesExA p_GetFileAttributesExA = NULL; +t_GetFileAttributesExW p_GetFileAttributesExW = NULL; + +t_SetFileAttributesA p_SetFileAttributesA = NULL; +t_SetFileAttributesW p_SetFileAttributesW = NULL; +t_BackupRead p_BackupRead = NULL; +t_BackupWrite p_BackupWrite = NULL; +t_WideCharToMultiByte p_WideCharToMultiByte = NULL; +t_MultiByteToWideChar p_MultiByteToWideChar = NULL; + +t_FindFirstFileA p_FindFirstFileA = NULL; +t_FindFirstFileW p_FindFirstFileW = NULL; + +t_FindNextFileA p_FindNextFileA = NULL; +t_FindNextFileW p_FindNextFileW = NULL; + +t_SetCurrentDirectoryA p_SetCurrentDirectoryA = NULL; +t_SetCurrentDirectoryW p_SetCurrentDirectoryW = NULL; + +t_GetCurrentDirectoryA p_GetCurrentDirectoryA = NULL; +t_GetCurrentDirectoryW p_GetCurrentDirectoryW = NULL; +#endif diff --git a/bacula/src/lib/winapi.h b/bacula/src/lib/winapi.h new file mode 100644 index 0000000000..8fed7e90e5 --- /dev/null +++ b/bacula/src/lib/winapi.h @@ -0,0 +1,139 @@ +/* + * Windows APIs that are different for each system. + * We use pointers to the entry points so that a + * single binary will run on all Windows systems. + * + * Kern Sibbald MMIII + */ +/* + Copyright (C) 2000-2005 Kern Sibbald + + This program 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 2 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, write to the Free + Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA. + + */ + +#ifndef __WINAPI_H +#define __WINAPI_H + +#if defined(HAVE_WIN32) +/* + * Commented out native.h include statement, which is not distributed with the + * free version of VC++, and which is not used in bacula. + * + * #if !defined(HAVE_MINGW) // native.h not present on mingw + * #include + * #endif + */ +#include +#endif + +#if defined(HAVE_CYGWIN) || defined(HAVE_WIN32) + +// unicode enabling of win 32 needs some defines and functions +#define MAX_PATH_UNICODE 32767 +#define MAX_PATH_UTF8 MAX_PATH*3 + +int wchar_2_UTF8(char *pszUTF, const WCHAR *pszUCS, int cchChar = MAX_PATH_UTF8); +int UTF8_2_wchar(WCHAR *pszUCS, const char *pszUTF, int cchWideChar = MAX_PATH); + + +/* In ADVAPI32.DLL */ + +typedef BOOL (WINAPI * t_OpenProcessToken)(HANDLE, DWORD, PHANDLE); +typedef BOOL (WINAPI * t_AdjustTokenPrivileges)(HANDLE, BOOL, + PTOKEN_PRIVILEGES, DWORD, PTOKEN_PRIVILEGES, PDWORD); +typedef BOOL (WINAPI * t_LookupPrivilegeValue)(LPCTSTR, LPCTSTR, PLUID); + +extern t_OpenProcessToken p_OpenProcessToken; +extern t_AdjustTokenPrivileges p_AdjustTokenPrivileges; +extern t_LookupPrivilegeValue p_LookupPrivilegeValue; + +/* In MSVCRT.DLL */ +typedef int (__cdecl * t_wunlink) (const wchar_t *); +typedef int (__cdecl * t_wmkdir) (const wchar_t *); +typedef int (__cdecl * t_wopen) (const wchar_t *, int, ...); + +extern t_wunlink p_wunlink; +extern t_wmkdir p_wmkdir; +extern t_wopen p_wopen; +/* In KERNEL32.DLL */ +typedef BOOL (WINAPI * t_GetFileAttributesExA)(LPCSTR, GET_FILEEX_INFO_LEVELS, + LPVOID); +typedef BOOL (WINAPI * t_GetFileAttributesExW)(LPCWSTR, GET_FILEEX_INFO_LEVELS, + LPVOID); + +typedef DWORD (WINAPI * t_GetFileAttributesA)(LPCSTR); +typedef DWORD (WINAPI * t_GetFileAttributesW)(LPCWSTR); +typedef BOOL (WINAPI * t_SetFileAttributesA)(LPCSTR, DWORD); +typedef BOOL (WINAPI * t_SetFileAttributesW)(LPCWSTR, DWORD); + +typedef HANDLE (WINAPI * t_CreateFileA) (LPCSTR, DWORD ,DWORD, LPSECURITY_ATTRIBUTES, + DWORD , DWORD, HANDLE); +typedef HANDLE (WINAPI * t_CreateFileW) (LPCWSTR, DWORD ,DWORD, LPSECURITY_ATTRIBUTES, + DWORD , DWORD, HANDLE); + +typedef BOOL (WINAPI * t_SetProcessShutdownParameters)(DWORD, DWORD); +typedef BOOL (WINAPI * t_BackupRead)(HANDLE,LPBYTE,DWORD,LPDWORD,BOOL,BOOL,LPVOID*); +typedef BOOL (WINAPI * t_BackupWrite)(HANDLE,LPBYTE,DWORD,LPDWORD,BOOL,BOOL,LPVOID*); + +typedef int (WINAPI * t_WideCharToMultiByte) (UINT CodePage, DWORD , LPCWSTR, int, + LPSTR, int, LPCSTR, LPBOOL); + +typedef int (WINAPI * t_MultiByteToWideChar) (UINT, DWORD, LPCSTR, int, LPWSTR, int); +typedef HANDLE (WINAPI * t_FindFirstFileA) (LPCSTR, LPWIN32_FIND_DATAA); +typedef HANDLE (WINAPI * t_FindFirstFileW) (LPCWSTR, LPWIN32_FIND_DATAW); + +typedef BOOL (WINAPI * t_FindNextFileA) (HANDLE, LPWIN32_FIND_DATAA); +typedef BOOL (WINAPI * t_FindNextFileW) (HANDLE, LPWIN32_FIND_DATAW); + +typedef BOOL (WINAPI * t_SetCurrentDirectoryA) (LPCSTR); +typedef BOOL (WINAPI * t_SetCurrentDirectoryW) (LPCWSTR); + +typedef DWORD (WINAPI * t_GetCurrentDirectoryA) (DWORD, LPSTR); +typedef DWORD (WINAPI * t_GetCurrentDirectoryW) (DWORD, LPWSTR); + +extern t_GetFileAttributesA p_GetFileAttributesA; +extern t_GetFileAttributesW p_GetFileAttributesW; + +extern t_GetFileAttributesExA p_GetFileAttributesExA; +extern t_GetFileAttributesExW p_GetFileAttributesExW; + +extern t_SetFileAttributesA p_SetFileAttributesA; +extern t_SetFileAttributesW p_SetFileAttributesW; + +extern t_CreateFileA p_CreateFileA; +extern t_CreateFileW p_CreateFileW; +extern t_SetProcessShutdownParameters p_SetProcessShutdownParameters; +extern t_BackupRead p_BackupRead; +extern t_BackupWrite p_BackupWrite; + +extern t_WideCharToMultiByte p_WideCharToMultiByte; +extern t_MultiByteToWideChar p_MultiByteToWideChar; + +extern t_FindFirstFileA p_FindFirstFileA; +extern t_FindFirstFileW p_FindFirstFileW; + +extern t_FindNextFileA p_FindNextFileA; +extern t_FindNextFileW p_FindNextFileW; + +extern t_SetCurrentDirectoryA p_SetCurrentDirectoryA; +extern t_SetCurrentDirectoryW p_SetCurrentDirectoryW; + +extern t_GetCurrentDirectoryA p_GetCurrentDirectoryA; +extern t_GetCurrentDirectoryW p_GetCurrentDirectoryW; +#endif + +#endif /* __WINAPI_H */ diff --git a/bacula/src/stored/spool.c b/bacula/src/stored/spool.c index 8724854b94..60e9b760c8 100644 --- a/bacula/src/stored/spool.c +++ b/bacula/src/stored/spool.c @@ -308,8 +308,8 @@ static int read_block_from_spool_file(DCR *dcr) Jmsg(dcr->jcr, M_FATAL, 0, _("Spool header read error. ERR=%s\n"), be.strerror()); } else { - Pmsg2(000, "Spool read error. Wanted %u bytes, got %u\n", rlen, stat); - Jmsg2(dcr->jcr, M_FATAL, 0, _("Spool header read error. Wanted %u bytes, got %u\n"), rlen, stat); + Pmsg2(000, "Spool read error. Wanted %u bytes, got %d\n", rlen, stat); + Jmsg2(dcr->jcr, M_FATAL, 0, _("Spool header read error. Wanted %u bytes, got %d\n"), rlen, stat); } return RB_ERROR; } @@ -321,8 +321,8 @@ static int read_block_from_spool_file(DCR *dcr) } stat = read(dcr->spool_fd, (char *)block->buf, (size_t)rlen); if (stat != (ssize_t)rlen) { - Pmsg2(000, "Spool data read error. Wanted %u bytes, got %u\n", rlen, stat); - Jmsg2(dcr->jcr, M_FATAL, 0, _("Spool data read error. Wanted %u bytes, got %u\n"), rlen, stat); + Pmsg2(000, "Spool data read error. Wanted %u bytes, got %d\n", rlen, stat); + Jmsg2(dcr->jcr, M_FATAL, 0, _("Spool data read error. Wanted %u bytes, got %d\n"), rlen, stat); return RB_ERROR; } /* Setup write pointers */ diff --git a/bacula/src/version.h b/bacula/src/version.h index 394e38b486..7b9538329c 100644 --- a/bacula/src/version.h +++ b/bacula/src/version.h @@ -1,8 +1,8 @@ /* */ #undef VERSION #define VERSION "1.37.16" -#define BDATE "02 May 2005" -#define LSMDATE "02May05" +#define BDATE "03 May 2005" +#define LSMDATE "03May05" /* Debug flags */ #undef DEBUG diff --git a/bacula/src/win32/baculafd/baculafd.dep b/bacula/src/win32/baculafd/baculafd.dep index cb64a87d8a..9374885266 100644 --- a/bacula/src/win32/baculafd/baculafd.dep +++ b/bacula/src/win32/baculafd/baculafd.dep @@ -125,7 +125,7 @@ "..\..\findlib\find.h"\ "..\..\findlib\protos.h"\ "..\..\findlib\save-cwd.h"\ - "..\..\findlib\winapi.h"\ + "..\..\lib\winapi.h"\ "..\..\host.h"\ "..\..\jcr.h"\ "..\..\lib\alist.h"\ @@ -191,7 +191,7 @@ "..\..\findlib\find.h"\ "..\..\findlib\protos.h"\ "..\..\findlib\save-cwd.h"\ - "..\..\findlib\winapi.h"\ + "..\..\lib\winapi.h"\ "..\..\host.h"\ "..\..\jcr.h"\ "..\..\lib\alist.h"\ @@ -257,7 +257,7 @@ "..\..\findlib\find.h"\ "..\..\findlib\protos.h"\ "..\..\findlib\save-cwd.h"\ - "..\..\findlib\winapi.h"\ + "..\..\lib\winapi.h"\ "..\..\host.h"\ "..\..\jcr.h"\ "..\..\lib\alist.h"\ @@ -375,7 +375,7 @@ "..\..\findlib\find.h"\ "..\..\findlib\protos.h"\ "..\..\findlib\save-cwd.h"\ - "..\..\findlib\winapi.h"\ + "..\..\lib\winapi.h"\ "..\..\host.h"\ "..\..\jcr.h"\ "..\..\lib\alist.h"\ @@ -770,7 +770,7 @@ "..\..\findlib\find.h"\ "..\..\findlib\protos.h"\ "..\..\findlib\save-cwd.h"\ - "..\..\findlib\winapi.h"\ + "..\..\lib\winapi.h"\ "..\..\host.h"\ "..\..\jcr.h"\ "..\..\lib\alist.h"\ @@ -944,7 +944,7 @@ "..\..\findlib\find.h"\ "..\..\findlib\protos.h"\ "..\..\findlib\save-cwd.h"\ - "..\..\findlib\winapi.h"\ + "..\..\lib\winapi.h"\ "..\..\host.h"\ "..\..\jcr.h"\ "..\..\lib\alist.h"\ @@ -1172,7 +1172,7 @@ "..\..\findlib\find.h"\ "..\..\findlib\protos.h"\ "..\..\findlib\save-cwd.h"\ - "..\..\findlib\winapi.h"\ + "..\..\lib\winapi.h"\ "..\..\host.h"\ "..\..\jcr.h"\ "..\..\lib\alist.h"\ @@ -1238,7 +1238,7 @@ "..\..\findlib\find.h"\ "..\..\findlib\protos.h"\ "..\..\findlib\save-cwd.h"\ - "..\..\findlib\winapi.h"\ + "..\..\lib\winapi.h"\ "..\..\host.h"\ "..\..\jcr.h"\ "..\..\lib\alist.h"\ @@ -1304,7 +1304,7 @@ "..\..\findlib\find.h"\ "..\..\findlib\protos.h"\ "..\..\findlib\save-cwd.h"\ - "..\..\findlib\winapi.h"\ + "..\..\lib\winapi.h"\ "..\..\host.h"\ "..\..\jcr.h"\ "..\..\lib\alist.h"\ @@ -1370,7 +1370,7 @@ "..\..\findlib\find.h"\ "..\..\findlib\protos.h"\ "..\..\findlib\save-cwd.h"\ - "..\..\findlib\winapi.h"\ + "..\..\lib\winapi.h"\ "..\..\host.h"\ "..\..\jcr.h"\ "..\..\lib\alist.h"\ @@ -1433,7 +1433,7 @@ "..\..\findlib\find.h"\ "..\..\findlib\protos.h"\ "..\..\findlib\save-cwd.h"\ - "..\..\findlib\winapi.h"\ + "..\..\lib\winapi.h"\ "..\..\host.h"\ "..\..\jcr.h"\ "..\..\lib\alist.h"\ @@ -1496,7 +1496,7 @@ "..\..\findlib\find_one.c"\ "..\..\findlib\protos.h"\ "..\..\findlib\save-cwd.h"\ - "..\..\findlib\winapi.h"\ + "..\..\lib\winapi.h"\ "..\..\host.h"\ "..\..\jcr.h"\ "..\..\lib\alist.h"\ @@ -1622,7 +1622,7 @@ "..\..\findlib\find.h"\ "..\..\findlib\protos.h"\ "..\..\findlib\save-cwd.h"\ - "..\..\findlib\winapi.h"\ + "..\..\lib\winapi.h"\ "..\..\host.h"\ "..\..\jcr.h"\ "..\..\lib\alist.h"\ @@ -1910,7 +1910,7 @@ "..\..\findlib\find.h"\ "..\..\findlib\protos.h"\ "..\..\findlib\save-cwd.h"\ - "..\..\findlib\winapi.h"\ + "..\..\lib\winapi.h"\ "..\..\host.h"\ "..\..\jcr.h"\ "..\..\lib\alist.h"\ @@ -2085,7 +2085,7 @@ "..\..\findlib\match.c"\ "..\..\findlib\protos.h"\ "..\..\findlib\save-cwd.h"\ - "..\..\findlib\winapi.h"\ + "..\..\lib\winapi.h"\ "..\..\host.h"\ "..\..\jcr.h"\ "..\..\lib\alist.h"\ @@ -2433,7 +2433,7 @@ "..\..\findlib\find.h"\ "..\..\findlib\protos.h"\ "..\..\findlib\save-cwd.h"\ - "..\..\findlib\winapi.h"\ + "..\..\lib\winapi.h"\ "..\..\host.h"\ "..\..\jcr.h"\ "..\..\lib\alist.h"\ @@ -2606,7 +2606,7 @@ "..\..\findlib\find.h"\ "..\..\findlib\protos.h"\ "..\..\findlib\save-cwd.h"\ - "..\..\findlib\winapi.h"\ + "..\..\lib\winapi.h"\ "..\..\host.h"\ "..\..\jcr.h"\ "..\..\lib\alist.h"\ @@ -2948,7 +2948,7 @@ "..\..\findlib\find.h"\ "..\..\findlib\protos.h"\ "..\..\findlib\save-cwd.h"\ - "..\..\findlib\winapi.h"\ + "..\..\lib\winapi.h"\ "..\..\host.h"\ "..\..\jcr.h"\ "..\..\lib\alist.h"\ @@ -3070,7 +3070,7 @@ "..\..\findlib\find.h"\ "..\..\findlib\protos.h"\ "..\..\findlib\save-cwd.h"\ - "..\..\findlib\winapi.h"\ + "..\..\lib\winapi.h"\ "..\..\host.h"\ "..\..\jcr.h"\ "..\..\lib\alist.h"\ @@ -3133,7 +3133,7 @@ "..\..\findlib\find.h"\ "..\..\findlib\protos.h"\ "..\..\findlib\save-cwd.h"\ - "..\..\findlib\winapi.h"\ + "..\..\lib\winapi.h"\ "..\..\host.h"\ "..\..\jcr.h"\ "..\..\lib\alist.h"\ @@ -3255,7 +3255,7 @@ "..\..\findlib\find.h"\ "..\..\findlib\protos.h"\ "..\..\findlib\save-cwd.h"\ - "..\..\findlib\winapi.h"\ + "..\..\lib\winapi.h"\ "..\..\host.h"\ "..\..\jcr.h"\ "..\..\lib\alist.h"\ @@ -3321,7 +3321,7 @@ "..\..\findlib\find.h"\ "..\..\findlib\protos.h"\ "..\..\findlib\save-cwd.h"\ - "..\..\findlib\winapi.h"\ + "..\..\lib\winapi.h"\ "..\..\host.h"\ "..\..\jcr.h"\ "..\..\lib\alist.h"\ @@ -3435,7 +3435,7 @@ "..\..\filed\win32\winbacula.h"\ -..\findlib\winapi.cpp : \ +..\lib\winapi.cpp : \ "..\..\baconfig.h"\ "..\..\bacula.h"\ "..\..\bc_types.h"\ @@ -3444,8 +3444,8 @@ "..\..\findlib\find.h"\ "..\..\findlib\protos.h"\ "..\..\findlib\save-cwd.h"\ - "..\..\findlib\winapi.c"\ - "..\..\findlib\winapi.h"\ + "..\..\lib\winapi.c"\ + "..\..\lib\winapi.h"\ "..\..\host.h"\ "..\..\jcr.h"\ "..\..\lib\alist.h"\ @@ -3510,7 +3510,7 @@ "..\..\filed\win32\winservice.h"\ "..\..\filed\win32\winstat.h"\ "..\..\filed\win32\wintray.h"\ - "..\..\findlib\winapi.h"\ + "..\..\lib\winapi.h"\ "..\compat\compat.h"\ "..\compat\getopt.h"\ "..\compat\unistd.h"\ diff --git a/bacula/src/win32/baculafd/baculafd.mak b/bacula/src/win32/baculafd/baculafd.mak index 963d49f7f4..d851f5e011 100644 --- a/bacula/src/win32/baculafd/baculafd.mak +++ b/bacula/src/win32/baculafd/baculafd.mak @@ -1877,7 +1877,7 @@ SOURCE=..\..\filed\win32\winabout.cpp !ENDIF -SOURCE=..\findlib\winapi.cpp +SOURCE=..\lib\winapi.cpp !IF "$(CFG)" == "baculafd - Win32 Release" diff --git a/bacula/src/win32/compat/compat.cpp b/bacula/src/win32/compat/compat.cpp index 887fe4438c..c2123ea577 100644 --- a/bacula/src/win32/compat/compat.cpp +++ b/bacula/src/win32/compat/compat.cpp @@ -30,7 +30,7 @@ #include "compat.h" #include "pthread.h" -#include "../../findlib/winapi.h" +#include "../../lib/winapi.h" #define b_errno_win32 (1<<29) diff --git a/bacula/src/win32/compat/compat.h b/bacula/src/win32/compat/compat.h index 6c3a8dc5db..3fe1fcf53d 100644 --- a/bacula/src/win32/compat/compat.h +++ b/bacula/src/win32/compat/compat.h @@ -75,13 +75,6 @@ #define HAVE_WIN32 1 -// unicode enabling of win 32 needs some defines and functions -#define MAX_PATH_UNICODE 32767 -#define MAX_PATH_UTF8 MAX_PATH*3 - -int wchar_2_UTF8(char *pszUTF, const WCHAR *pszUCS, int cchChar = MAX_PATH_UTF8); -int UTF8_2_wchar(WCHAR *pszUCS, const char *pszUTF, int cchWideChar = MAX_PATH); - #ifndef HAVE_MINGW #ifdef HAVE_CYGWIN #error should not be used under cygwin... diff --git a/bacula/src/win32/console/bconsole.mak.in b/bacula/src/win32/console/bconsole.mak.in new file mode 100755 index 0000000000..db7ff16ec4 --- /dev/null +++ b/bacula/src/win32/console/bconsole.mak.in @@ -0,0 +1,146 @@ +# Microsoft Developer Studio Generated NMAKE File, Based on wx-console.dsp +!IF "$(CFG)" == "" +CFG=bconsole - Win32 Release +!MESSAGE No configuration specified. Defaulting to bconsole - Win32 Release. +!ENDIF + +!IF "$(CFG)" != "bconsole - Win32 Release" && "$(CFG)" != "bconsole - Win32 Debug" +!MESSAGE Invalid configuration "$(CFG)" specified. +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "bconsole.mak" CFG="bconsole - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "bconsole - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "bconsole - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE +!ERROR An invalid configuration is specified. +!ENDIF + +!IF "$(OS)" == "Windows_NT" +NULL= +!ELSE +NULL=nul +!ENDIF + +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "bconsole - Win32 Release" + +OUTDIR=.\Release +INTDIR=.\Release +# Begin Custom Macros +OutDir=.\Release +# End Custom Macros + +ALL : "$(OUTDIR)\bconsole.exe" + + +CLEAN : + @@REL-CLEAN@@ + -@erase "$(OUTDIR)\bconsole.exe" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP_PROJ=/nologo /MD /W3 /GX /I "../compat" /I "../.." /I "../../../../depkgs-win32/pthreads" /I "." /D "_DEBUG" /D "HAVE_CONSOLE" /D "_WINMAIN_" /D "PTW32_BUILD" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "HAVE_WIN32" /D "_AFXDLL" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /I /GZ /c +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\bconsole.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=wsock32.lib pthreadVCE.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"$(OUTDIR)\bconsole.exe" /libpath:"../../../../depkgs-win32/pthreads" +LINK32_OBJS= \ + @@REL-OBJS@@ + + +"$(OUTDIR)\bconsole.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +!ELSEIF "$(CFG)" == "bconsole - Win32 Debug" + +OUTDIR=.\Debug +INTDIR=.\Debug +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +ALL : "$(OUTDIR)\bconsole.exe" "$(OUTDIR)\bconsole.bsc" + +CLEAN : + @@DEB-CLEAN@@ + -@erase "$(OUTDIR)\bconsole.exe" + -@erase "$(OUTDIR)\bconsole.bsc" + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + + +CPP_PROJ=/nologo /MDd /W3 /Gm /GX /ZI /Od /I "../compat" /I "../.." /I "../../../../depkgs-win32/pthreads" /I "." /D "_DEBUG" /D "HAVE_CONSOLE" /D "_WINMAIN_" /D "PTW32_BUILD" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "HAVE_WIN32" /D "_AFXDLL" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /I /GZ /c +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\bconsole.bsc" +BSC32_SBRS= \ + @@DEB-SBRS@@ + +"$(OUTDIR)\bconsole.bsc" : "$(OUTDIR)" $(BSC32_SBRS) + $(BSC32) @<< + $(BSC32_FLAGS) $(BSC32_SBRS) +<< + +LINK32=link.exe +LINK32_FLAGS=wsock32.lib pthreadVCE.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /out:"$(OUTDIR)\bconsole.exe" /libpath:"../../../../depkgs-win32/pthreads" +LINK32_OBJS= \ + @@DEB-OBJS@@ + +"$(OUTDIR)\bconsole.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + +!ENDIF + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + + +!IF "$(NO_EXTERNAL_DEPS)" != "1" +!IF EXISTS("bconsole.dep") +!INCLUDE "bconsole.dep" +!ELSE +!MESSAGE Warning: cannot find "bconsole.dep" +!ENDIF +!ENDIF + +@@OBJTARGETS@@ diff --git a/bacula/src/win32/console/console.mak b/bacula/src/win32/console/console.mak index c3c2435855..376061ddb0 100644 --- a/bacula/src/win32/console/console.mak +++ b/bacula/src/win32/console/console.mak @@ -78,6 +78,7 @@ CLEAN : -@erase "$(INTDIR)\util.obj" -@erase "$(INTDIR)\vc60.idb" -@erase "$(INTDIR)\watchdog.obj" + -@erase "$(INTDIR)\winapi.obj" -@erase "$(OUTDIR)\bconsole.exe" "$(OUTDIR)" : @@ -126,7 +127,8 @@ LINK32_OBJS= \ "$(INTDIR)\StdAfx.obj" \ "$(INTDIR)\btimers.obj" \ "$(INTDIR)\util.obj" \ - "$(INTDIR)\watchdog.obj" + "$(INTDIR)\watchdog.obj" \ + "$(INTDIR)\winapi.obj" "$(OUTDIR)\bconsole.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) $(LINK32) @<< @@ -184,6 +186,7 @@ CLEAN : -@erase "$(INTDIR)\vc60.idb" -@erase "$(INTDIR)\vc60.pdb" -@erase "$(INTDIR)\watchdog.obj" + -@erase "$(INTDIR)\winapi.obj" -@erase "$(OUTDIR)\bconsole.exe" "$(OUTDIR)" : @@ -232,7 +235,8 @@ LINK32_OBJS= \ "$(INTDIR)\StdAfx.obj" \ "$(INTDIR)\btimers.obj" \ "$(INTDIR)\util.obj" \ - "$(INTDIR)\watchdog.obj" + "$(INTDIR)\watchdog.obj" \ + "$(INTDIR)\winapi.obj" "$(OUTDIR)\bconsole.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) $(LINK32) @<< @@ -514,5 +518,12 @@ SOURCE=..\lib\watchdog.cpp $(CPP) $(CPP_PROJ) $(SOURCE) +SOURCE=..\lib\winapi.cpp + +"$(INTDIR)\winapi.obj" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + + !ENDIF diff --git a/bacula/src/win32/console/filelist b/bacula/src/win32/console/filelist new file mode 100644 index 0000000000..90e55fee41 --- /dev/null +++ b/bacula/src/win32/console/filelist @@ -0,0 +1,37 @@ +..\lib\address_conf +..\lib\alist +..\lib\base64 +..\lib\berrno +..\lib\bnet +..\lib\bsys +..\lib\btime +..\lib\cram-md5 +..\lib\crc32 +..\lib\dlist +..\lib\edit +..\lib\getopt +..\lib\hmac +..\lib\idcache +..\lib\jcr +..\lib\lex +..\lib\md5 +..\lib\mem_pool +..\lib\message +..\lib\parse_conf +..\lib\queue +..\lib\res +..\lib\rwlock +..\lib\scan +..\lib\serial +..\lib\sha1 +..\lib\smartall +..\lib\btimers +..\lib\util +..\lib\watchdog +..\lib\winapi +..\compat\compat +..\compat\print +.\authenticate +.\console +.\console_conf +.\StdAfx diff --git a/bacula/src/win32/console/genmake.sh b/bacula/src/win32/console/genmake.sh new file mode 100644 index 0000000000..880c5223de --- /dev/null +++ b/bacula/src/win32/console/genmake.sh @@ -0,0 +1,16 @@ +rm -f bconsole.mak +sed -e 's/^\(.*\)\\\(.*\)$/FILENAME=\2\nSOURCE=\1\\\2.cpp\n@@OBJMAKIN@@\n/g' filelist > objtargets1.tmp +sed -e '/@@OBJMAKIN@@/r bconsole-obj.mak.in' -e '/@@OBJMAKIN@@/d' objtargets1.tmp > objtargets.tmp +sed -e 's/^\(.*\)\\\(.*\)$/\t-@erase "\$(INTDIR)\\\2.obj"/g' filelist > relclean.tmp +sed -e 's/^\(.*\)\\\(.*\)$/\t"\$(INTDIR)\\\2.obj" \\/g' filelist > relobjs.tmp +sed -e 's/^\(.*\)\\\(.*\)$/\t-@erase "\$(INTDIR)\\\2.obj\n\t-@erase "\$(INTDIR)\\\2.sbr"/g' filelist > debclean.tmp +sed -e 's/^\(.*\)\\\(.*\)$/\t"\$(INTDIR)\\\2.obj" \\/g' filelist > debobjs.tmp +sed -e 's/^\(.*\)\\\(.*\)$/\t"\$(INTDIR)\\\2.sbr" \\/g' filelist > debsbrs.tmp +sed -e '/@@OBJTARGETS@@/r objtargets.tmp' -e '/@@OBJTARGETS@@/d' \ + -e '/@@REL-CLEAN@@/r relclean.tmp' -e '/@@REL-CLEAN@@/d' \ + -e '/@@REL-OBJS@@/r relobjs.tmp' -e '/@@REL-OBJS@@/d' \ + -e '/@@DEB-CLEAN@@/r debclean.tmp' -e '/@@DEB-CLEAN@@/d' \ + -e '/@@DEB-OBJS@@/r debobjs.tmp' -e '/@@DEB-OBJS@@/d' \ + -e '/@@DEB-SBRS@@/r debsbrs.tmp' -e '/@@DEB-SBRS@@/d' \ + bconsole.mak.in > bconsole.mak +rm *.tmp diff --git a/bacula/src/win32/lib/winapi.cpp b/bacula/src/win32/lib/winapi.cpp new file mode 100644 index 0000000000..cc97e9d858 --- /dev/null +++ b/bacula/src/win32/lib/winapi.cpp @@ -0,0 +1 @@ +#include "../../lib/winapi.c" diff --git a/bacula/src/win32/wx-console/filelist b/bacula/src/win32/wx-console/filelist index cf977900ec..190a095353 100644 --- a/bacula/src/win32/wx-console/filelist +++ b/bacula/src/win32/wx-console/filelist @@ -40,6 +40,7 @@ ..\lib\util ..\lib\var ..\lib\watchdog +..\lib\winapi ..\lib\workq ..\compat\compat ..\compat\print diff --git a/bacula/src/win32/wx-console/wx-console.mak b/bacula/src/win32/wx-console/wx-console.mak index 309dfb1618..5d617f0ad0 100644 --- a/bacula/src/win32/wx-console/wx-console.mak +++ b/bacula/src/win32/wx-console/wx-console.mak @@ -82,6 +82,7 @@ CLEAN : -@erase "$(INTDIR)\util.obj" -@erase "$(INTDIR)\var.obj" -@erase "$(INTDIR)\watchdog.obj" + -@erase "$(INTDIR)\winapi.obj" -@erase "$(INTDIR)\workq.obj" -@erase "$(INTDIR)\compat.obj" -@erase "$(INTDIR)\print.obj" @@ -157,6 +158,7 @@ LINK32_OBJS= \ "$(INTDIR)\util.obj" \ "$(INTDIR)\var.obj" \ "$(INTDIR)\watchdog.obj" \ + "$(INTDIR)\winapi.obj" \ "$(INTDIR)\workq.obj" \ "$(INTDIR)\compat.obj" \ "$(INTDIR)\print.obj" \ @@ -275,6 +277,8 @@ CLEAN : -@erase "$(INTDIR)\var.sbr" -@erase "$(INTDIR)\watchdog.obj -@erase "$(INTDIR)\watchdog.sbr" + -@erase "$(INTDIR)\winapi.obj + -@erase "$(INTDIR)\winapi.sbr" -@erase "$(INTDIR)\workq.obj -@erase "$(INTDIR)\workq.sbr" -@erase "$(INTDIR)\compat.obj @@ -361,6 +365,7 @@ BSC32_SBRS= \ "$(INTDIR)\util.sbr" \ "$(INTDIR)\var.sbr" \ "$(INTDIR)\watchdog.sbr" \ + "$(INTDIR)\winapi.sbr" \ "$(INTDIR)\workq.sbr" \ "$(INTDIR)\compat.sbr" \ "$(INTDIR)\print.sbr" \ @@ -431,6 +436,7 @@ LINK32_OBJS= \ "$(INTDIR)\util.obj" \ "$(INTDIR)\var.obj" \ "$(INTDIR)\watchdog.obj" \ + "$(INTDIR)\winapi.obj" \ "$(INTDIR)\workq.obj" \ "$(INTDIR)\compat.obj" \ "$(INTDIR)\print.obj" \ @@ -1298,6 +1304,25 @@ SOURCE=..\lib\watchdog.cpp !ENDIF +FILENAME=winapi +SOURCE=..\lib\winapi.cpp +!IF "$(CFG)" == "wx-console - Win32 Release" + + +"$(INTDIR)\$(FILENAME).obj" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ELSEIF "$(CFG)" == "wx-console - Win32 Debug" + + +"$(INTDIR)\$(FILENAME).obj" "$(INTDIR)\$(FILENAME).sbr" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ENDIF + + FILENAME=workq SOURCE=..\lib\workq.cpp !IF "$(CFG)" == "wx-console - Win32 Release" -- 2.39.5