]> git.sur5r.net Git - bacula/bacula/commitdiff
ebl Tweak bat for win32 (it segfault at home, but
authorEric Bollengier <eric@eb.homelinux.org>
Wed, 9 Jul 2008 16:18:53 +0000 (16:18 +0000)
committerEric Bollengier <eric@eb.homelinux.org>
Wed, 9 Jul 2008 16:18:53 +0000 (16:18 +0000)
     bat.exe is there !)

git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@7351 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/qt-console/README.mingw [new file with mode: 0644]
bacula/src/qt-console/bat.pro.mingw [new file with mode: 0644]
bacula/src/qt-console/win32-x-g++/qmake.conf [new file with mode: 0644]
bacula/src/qt-console/win32-x-g++/qplatformdefs.h [new file with mode: 0644]

diff --git a/bacula/src/qt-console/README.mingw b/bacula/src/qt-console/README.mingw
new file mode 100644 (file)
index 0000000..9913869
--- /dev/null
@@ -0,0 +1,62 @@
+
+BUILD SYSTEM: Ubuntu gutsy
+STATUS: Bat segfault quickly
+
+REQUIRE: 
+ - Bacula cross compilation tool (must be able to compile bacula-fd.exe)
+ - wine (apt-get install wine)
+ - qt mingw32 distribution
+
+ORIGINAL HOWTO (french):
+http://doc.qtfr.org/post/2007/04/10/Cross-Compilation-Native-dapplication-Qt-depuis-Linux
+
+Legend:
+# comment
+$ shell command
+* tips
+
+
+bacula setup
+------------
+$ cd bacula/src/win32
+$ make
+
+Don't run any configure, make or make install
+Make sure that bacula/src/win32/release/bacula.dll is built
+
+QT4 setup
+----------
+
+Install QT for mingw
+
+Get the mingw installation from http://trolltech.com/developer/downloads/qt/windows
+
+$ wine qt-win-opensource-4.4.0-mingw.exe
+ * Install under c:\Qt (no space)
+ * no worry about mingw installation
+
+$ cp -r ~/.wine/drive_c/Qt/4.4.0/src/    depkgs-mingw32/include
+$ cp -r ~/.wine/drive_c/Qt/4.4.0/include depkgs-mingw32/include/qt
+$ cp -r ~/.wine/drive_c/Qt/4.4.0/lib     depkgs-mingw32/lib/qt
+
+Compile bat
+-----------
+
+$ cd bacula/src/qt-console
+$ cp bat.pro.mingw bat.pro
+$ qmake-qt4 -spec win32-x-g++
+$ make
+
+
+Run Bat with wine
+-----------------
+$ cd bacula/src/qt-console/debug
+
+# configure a bat.conf
+# copy all dll to this directory
+
+$ wine bat 
+
+
+That all, easy isn't it ?
+
diff --git a/bacula/src/qt-console/bat.pro.mingw b/bacula/src/qt-console/bat.pro.mingw
new file mode 100644 (file)
index 0000000..5847ed8
--- /dev/null
@@ -0,0 +1,165 @@
+######################################################################
+# Version $Id: bat.pro.in 7051 2008-05-29 01:19:31Z bartleyd2 $
+#
+#   !!!!!!! IMPORTANT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+#
+#      Edit only bat.pro.in  -- bat.pro is built by the ./configure program
+#
+#   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+#    
+CONFIG += qt debug cross-win32
+
+bins.path = ./
+bins.files = ./bat
+confs.path = ./
+confs.commands = ./install_conf_file   
+
+TEMPLATE     = app
+TARGET       = bat
+DEPENDPATH  += .
+INCLUDEPATH += .. . ./console ./restore ./select
+
+cross-win32 {
+#  LIBS       +=  ../win32/dll/bacula.a
+  LIBS       +=  -L../win32/release -lbacula
+}
+!cross-win32 {
+  LIBS        += -L../lib -lbac @OPENSSL_LIBS@
+}
+
+qwt {
+  INCLUDEPATH += @QWT_INC@ 
+  LIBS        += @QWT_LDFLAGS@ @QWT_LIB@
+}
+
+RESOURCES    = main.qrc
+MOC_DIR      = moc
+OBJECTS_DIR  = obj
+UI_DIR       = ui
+
+# Main window
+FORMS += main.ui 
+FORMS += prefs.ui
+FORMS += label/label.ui 
+FORMS += relabel/relabel.ui 
+FORMS += mount/mount.ui
+FORMS += console/console.ui
+FORMS += restore/restore.ui restore/prerestore.ui restore/brestore.ui
+FORMS += restore/restoretree.ui
+FORMS += run/run.ui run/runcmd.ui run/estimate.ui run/prune.ui
+FORMS += select/select.ui
+FORMS += medialist/medialist.ui mediaedit/mediaedit.ui joblist/joblist.ui
+FORMS += clients/clients.ui storage/storage.ui fileset/fileset.ui
+FORMS += joblog/joblog.ui jobs/jobs.ui
+FORMS += help/help.ui
+FORMS += status/dirstat.ui
+FORMS += status/clientstat.ui
+FORMS += status/storstat.ui
+qwt {
+  FORMS += jobgraphs/jobplotcontrols.ui
+}
+
+# Main directory
+HEADERS += mainwin.h bat.h bat_conf.h qstd.h pages.h
+SOURCES += main.cpp bat_conf.cpp mainwin.cpp qstd.cpp pages.cpp
+
+# bcomm
+HEADERS += bcomm/dircomm.h
+SOURCES += bcomm/dircomm.cpp bcomm/dircomm_auth.cpp
+
+# Console
+HEADERS += console/console.h
+SOURCES += console/authenticate.cpp console/console.cpp
+
+# Restore
+HEADERS += restore/restore.h
+SOURCES += restore/prerestore.cpp restore/restore.cpp restore/brestore.cpp
+
+# Label dialog
+HEADERS += label/label.h
+SOURCES += label/label.cpp
+
+# Relabel dialog
+HEADERS += relabel/relabel.h
+SOURCES += relabel/relabel.cpp
+
+# Mount dialog
+HEADERS += mount/mount.h
+SOURCES += mount/mount.cpp
+
+# Run dialog
+HEADERS += run/run.h
+SOURCES += run/run.cpp run/runcmd.cpp run/estimate.cpp run/prune.cpp
+
+# Select dialog
+HEADERS += select/select.h
+SOURCES += select/select.cpp
+
+## MediaList
+HEADERS += medialist/medialist.h
+SOURCES += medialist/medialist.cpp
+
+## MediaEdit
+HEADERS += mediaedit/mediaedit.h
+SOURCES += mediaedit/mediaedit.cpp
+
+## JobList
+HEADERS += joblist/joblist.h
+SOURCES += joblist/joblist.cpp
+
+## Clients
+HEADERS += clients/clients.h
+SOURCES += clients/clients.cpp
+
+## Storage
+HEADERS += storage/storage.h
+SOURCES += storage/storage.cpp
+
+## Fileset
+HEADERS += fileset/fileset.h
+SOURCES += fileset/fileset.cpp
+
+## Job log
+HEADERS += joblog/joblog.h
+SOURCES += joblog/joblog.cpp
+
+## Jobs
+HEADERS += jobs/jobs.h
+SOURCES += jobs/jobs.cpp
+
+## RestoreTree
+HEADERS += restore/restoretree.h
+SOURCES += restore/restoretree.cpp
+
+## Job Step Graphs
+qwt {
+  HEADERS += jobgraphs/jobplot.h
+  SOURCES += jobgraphs/jobplot.cpp
+}
+
+# Help dialog
+HEADERS += help/help.h
+SOURCES += help/help.cpp
+
+## Status Dir
+HEADERS += status/dirstat.h
+SOURCES += status/dirstat.cpp
+
+## Status Client
+HEADERS += status/clientstat.h
+SOURCES += status/clientstat.cpp
+
+## Status Client
+HEADERS += status/storstat.h
+SOURCES += status/storstat.cpp
+
+# Utility sources
+HEADERS += util/fmtwidgetitem.h util/comboutil.h
+SOURCES += util/fmtwidgetitem.cpp util/comboutil.cpp
+
+INSTALLS += bins
+INSTALLS += confs
+
+QMAKE_EXTRA_TARGETS += depend
+
+TRANSLATIONS += ts/bat_fr.ts ts/bat_de.ts
diff --git a/bacula/src/qt-console/win32-x-g++/qmake.conf b/bacula/src/qt-console/win32-x-g++/qmake.conf
new file mode 100644 (file)
index 0000000..f11a2ed
--- /dev/null
@@ -0,0 +1,97 @@
+#
+# qmake configuration for win32-g++
+#
+# Written for MinGW
+#
+
+MAKEFILE_GENERATOR     = MINGW
+TEMPLATE               = app
+CONFIG                 += qt warn_on release link_prl copy_dir_files debug_and_release debug_and_release_target precompile_header
+QT                     += core gui
+DEFINES                        += UNICODE QT_LARGEFILE_SUPPORT
+QMAKE_COMPILER_DEFINES  += __GNUC__ WIN32
+
+QMAKE_EXT_OBJ           = .o
+QMAKE_EXT_RES           = _res.o
+
+QMAKE_CC               = ../../../cross-tools/mingw32/bin/mingw32-gcc
+QMAKE_LEX              = flex
+QMAKE_LEXFLAGS         =
+QMAKE_YACC             = byacc
+QMAKE_YACCFLAGS                = -d
+QMAKE_CFLAGS           = -DHAVE_MINGW -DHAVE_WIN32
+QMAKE_CFLAGS_DEPS      = -M
+QMAKE_CFLAGS_WARN_ON   = -Wall
+QMAKE_CFLAGS_WARN_OFF  = -w
+QMAKE_CFLAGS_RELEASE   = -O2
+QMAKE_CFLAGS_DEBUG     = -g
+QMAKE_CFLAGS_YACC      = -Wno-unused -Wno-parentheses
+
+QMAKE_CXX              = ../../../cross-tools/mingw32/bin/mingw32-g++
+QMAKE_CXXFLAGS         = $$QMAKE_CFLAGS -DHAVE_MINGW -DHAVE_WIN32 -DHAVE_ZLIB_H -DHAVE_LIBZ -DHAVE_CRYPTO -DHAVE_OPENSSL -DHAVE_TLS 
+QMAKE_CXXFLAGS_DEPS    = $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF        = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_DEBUG   = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_YACC    = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_THREAD  = $$QMAKE_CFLAGS_THREAD
+QMAKE_CXXFLAGS_RTTI_ON = -frtti
+QMAKE_CXXFLAGS_RTTI_OFF        = -fno-rtti
+QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads
+QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -fno-exceptions
+
+QMAKE_INCDIR           = ../../../depkgs-mingw32/include/pthreads ../../../depkgs-mingw32/include/ ../win32/compat 
+QMAKE_INCDIR_QT                = ../../../depkgs-mingw32/include/qt
+QMAKE_LIBDIR_QT                = ../../../depkgs-mingw32/lib/qt
+
+QMAKE_RUN_CC           = $(CC) -c $(CFLAGS) $(INCPATH) -o $obj $src
+QMAKE_RUN_CC_IMP       = $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
+QMAKE_RUN_CXX          = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $obj $src
+QMAKE_RUN_CXX_IMP      = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
+
+QMAKE_LINK             = ../../../cross-tools/mingw32/bin/mingw32-g++
+QMAKE_LFLAGS           = -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import  -mno-cygwin -m32 -fno-strict-aliasing -Wl,-enable-runtime-pseudo-reloc -mwindows
+
+QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads -Wl
+QMAKE_LFLAGS_EXCEPTIONS_OFF =
+QMAKE_LFLAGS_RELEASE   = -Wl,-s
+QMAKE_LFLAGS_DEBUG     =
+QMAKE_LFLAGS_CONSOLE   = -Wl,-subsystem,console
+QMAKE_LFLAGS_WINDOWS   = -Wl,-subsystem,windows
+QMAKE_LFLAGS_DLL        = -shared
+QMAKE_LINK_OBJECT_MAX  = 10
+QMAKE_LINK_OBJECT_SCRIPT= object_script
+
+
+QMAKE_LIBS             =
+QMAKE_LIBS_CORE         = -lkernel32 -luser32 -lshell32 -luuid -lole32 -ladvapi32 -lws2_32
+QMAKE_LIBS_GUI          = -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lwinspool -lws2_32 -lole32 -luuid -luser32 -ladvapi32
+QMAKE_LIBS_NETWORK      = -lws2_32
+QMAKE_LIBS_OPENGL       = -lopengl32 -lglu32 -lgdi32 -luser32
+QMAKE_LIBS_COMPAT       = -ladvapi32 -lshell32 -lcomdlg32 -luser32 -lgdi32 -lws2_32
+QMAKE_LIBS_QT_ENTRY     = -lmingw32 -lqtmain
+
+#!isEmpty(QMAKE_SH) {
+    MINGW_IN_SHELL      = 1
+       QMAKE_DIR_SEP           = /
+       QMAKE_COPY              = cp
+       QMAKE_COPY_DIR          = cp -r
+       QMAKE_MOVE              = mv
+       QMAKE_DEL_FILE          = rm -f
+       QMAKE_MKDIR             = mkdir -p
+       QMAKE_DEL_DIR           = rm -rf
+    QMAKE_CHK_DIR_EXISTS = test -d
+
+QMAKE_MOC              = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}moc
+QMAKE_UIC              = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}uic
+QMAKE_IDC              = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}idc
+
+QMAKE_IDL              = midl
+QMAKE_LIB              = ../../../cross-tools/mingw32/bin/mingw32-ar -ru
+QMAKE_RC               = ../../../cross-tools/mingw32/bin/mingw32-windres
+QMAKE_ZIP              = zip -r -9
+
+QMAKE_STRIP            = ../../../cross-tools/mingw32/bin/mingw32-strip
+QMAKE_STRIPFLAGS_LIB   += --strip-unneeded
+load(qt_config)
diff --git a/bacula/src/qt-console/win32-x-g++/qplatformdefs.h b/bacula/src/qt-console/win32-x-g++/qplatformdefs.h
new file mode 100644 (file)
index 0000000..b01b8a6
--- /dev/null
@@ -0,0 +1,161 @@
+/****************************************************************************
+**
+** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved.
+**
+** This file is part of the qmake spec of the Qt Toolkit.
+**
+** This file may be used under the terms of the GNU General Public
+** License version 2.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of
+** this file.  Please review the following information to ensure GNU
+** General Public Licensing requirements will be met:
+** http://trolltech.com/products/qt/licenses/licensing/opensource/
+**
+** If you are unsure which license is appropriate for your use, please
+** review the following information:
+** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
+** or contact the sales department at sales@trolltech.com.
+**
+** In addition, as a special exception, Trolltech gives you certain
+** additional rights. These rights are described in the Trolltech GPL
+** Exception version 1.0, which can be found at
+** http://www.trolltech.com/products/qt/gplexception/ and in the file
+** GPL_EXCEPTION.txt in this package.
+**
+** In addition, as a special exception, Trolltech, as the sole copyright
+** holder for Qt Designer, grants users of the Qt/Eclipse Integration
+** plug-in the right for the Qt/Eclipse Integration to link to
+** functionality provided by Qt Designer and its related libraries.
+**
+** Trolltech reserves all rights not expressly granted herein.
+** 
+** Trolltech ASA (c) 2007
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+****************************************************************************/
+
+#ifndef QPLATFORMDEFS_H
+#define QPLATFORMDEFS_H
+
+#ifdef UNICODE
+#ifndef _UNICODE
+#define _UNICODE
+#endif
+#endif
+
+// Get Qt defines/settings
+
+#include "qglobal.h"
+
+#include <tchar.h>
+#include <io.h>
+#include <direct.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <sys/stat.h>
+#include <stdlib.h>
+#include <windows.h>
+#include <limits.h>
+
+#if !defined(_WIN32_WINNT) || (_WIN32_WINNT-0 < 0x0500)
+typedef enum {
+    NameUnknown                  = 0, 
+    NameFullyQualifiedDN  = 1, 
+    NameSamCompatible    = 2, 
+    NameDisplay                  = 3, 
+    NameUniqueId         = 6, 
+    NameCanonical        = 7, 
+    NameUserPrincipal    = 8, 
+    NameCanonicalEx      = 9, 
+    NameServicePrincipal  = 10, 
+    NameDnsDomain        = 12
+} EXTENDED_NAME_FORMAT, *PEXTENDED_NAME_FORMAT;
+#endif
+
+#define Q_FS_FAT
+#ifdef QT_LARGEFILE_SUPPORT
+#define QT_STATBUF             struct _stati64         // non-ANSI defs
+#define QT_STATBUF4TSTAT       struct _stati64         // non-ANSI defs
+#define QT_STAT                        ::_stati64
+#define QT_FSTAT               ::_fstati64
+#else
+#define QT_STATBUF             struct _stat            // non-ANSI defs
+#define QT_STATBUF4TSTAT       struct _stat            // non-ANSI defs
+#define QT_STAT                        ::_stat
+#define QT_FSTAT               ::_fstat
+#endif
+#define QT_STAT_REG            _S_IFREG
+#define QT_STAT_DIR            _S_IFDIR
+#define QT_STAT_MASK           _S_IFMT
+#if defined(_S_IFLNK)
+#  define QT_STAT_LNK          _S_IFLNK
+#endif
+#define QT_FILENO              _fileno
+#define QT_OPEN                        ::_open
+#define QT_CLOSE               ::_close
+#ifdef QT_LARGEFILE_SUPPORT
+#define QT_LSEEK               ::_lseeki64
+#ifndef UNICODE
+#define QT_TSTAT               ::_stati64
+#else
+#define QT_TSTAT               ::_wstati64
+#endif
+#else
+#define QT_LSEEK               ::_lseek
+#ifndef UNICODE
+#define QT_TSTAT               ::_stat
+#else
+#define QT_TSTAT               ::_wstat
+#endif
+#endif
+#define QT_READ                        ::_read
+#define QT_WRITE               ::_write
+#define QT_ACCESS              ::_access
+#define QT_GETCWD              ::_getcwd
+#define QT_CHDIR               ::_chdir
+#define QT_MKDIR               ::_mkdir
+#define QT_RMDIR               ::_rmdir
+#define QT_OPEN_LARGEFILE       0
+#define QT_OPEN_RDONLY         _O_RDONLY
+#define QT_OPEN_WRONLY         _O_WRONLY
+#define QT_OPEN_RDWR           _O_RDWR
+#define QT_OPEN_CREAT          _O_CREAT
+#define QT_OPEN_TRUNC          _O_TRUNC
+#define QT_OPEN_APPEND         _O_APPEND
+#if defined(O_TEXT)
+# define QT_OPEN_TEXT          _O_TEXT
+# define QT_OPEN_BINARY                _O_BINARY
+#endif
+
+#define QT_FOPEN                ::fopen
+#ifdef QT_LARGEFILE_SUPPORT
+#define QT_FSEEK                ::fseeko64
+#define QT_FTELL                ::ftello64
+#else
+#define QT_FSEEK                ::fseek
+#define QT_FTELL                ::ftell
+#endif
+#define QT_FGETPOS              ::fgetpos
+#define QT_FSETPOS              ::fsetpos
+#define QT_FPOS_T               fpos_t
+#ifdef QT_LARGEFILE_SUPPORT
+#define QT_OFF_T                off64_t
+#else
+#define QT_OFF_T                long
+#endif
+
+#define QT_SIGNAL_ARGS         int
+
+#define QT_VSNPRINTF           ::_vsnprintf
+#define QT_SNPRINTF            ::_snprintf
+
+# define F_OK  0
+# define X_OK  1
+# define W_OK  2
+# define R_OK  4
+
+
+#endif // QPLATFORMDEFS_H