+++ /dev/null
-[Settings]
-NumFields=20
-
-[Field 1]
-Type="GroupBox"
-Text="Client"
-Left=0
-Top=0
-Right=300
-Bottom=52
-
-[Field 2]
-Type="Label"
-Text="Name"
-Left=6
-Top=10
-Right=40
-Bottom=18
-
-[Field 3]
-Type="Text"
-Left=40
-Top=8
-Right=128
-Bottom=20
-
-[Field 4]
-Type="Label"
-Text="(eg. hostname-fd)"
-Left=136
-Top=10
-Right=288
-Bottom=18
-
-[Field 5]
-Type="Label"
-Text="Port"
-Left=6
-Top=24
-Right=40
-Bottom=32
-
-[Field 6]
-Type="Text"
-Flags=ONLY_NUMBERS
-Left=40
-Top=22
-Right=68
-Bottom=34
-
-[Field 7]
-Type="Label"
-Text="Max Jobs"
-Left=6
-Top=38
-Right=40
-Bottom=46
-
-[Field 8]
-Type="Text"
-Flags=ONLY_NUMBERS
-Left=40
-Top=36
-Right=56
-Bottom=48
-
-[Field 9]
-Type="GroupBox"
-Text="Director"
-Left=0
-Top=54
-Right=300
-Bottom=92
-
-[Field 10]
-Type="Label"
-Text="Name"
-Left=6
-Top=64
-Right=40
-Bottom=72
-
-[Field 11]
-Type="Text"
-Left=40
-Top=62
-Right=128
-Bottom=74
-
-[Field 12]
-Type="Label"
-Text="(eg. servername-dir)"
-Left=136
-Top=64
-Right=288
-Bottom=72
-
-[Field 13]
-Type="Label"
-Text="Password"
-Left=6
-Top=78
-Right=40
-Bottom=86
-
-[Field 14]
-Type="Text"
-Left=40
-Top=76
-Right=288
-Bottom=88
-
-[Field 15]
-Type="GroupBox"
-Text="Monitor"
-Left=0
-Top=94
-Right=300
-Bottom=132
-
-[Field 16]
-Type="Label"
-Text="Name"
-Left=6
-Top=104
-Right=40
-Bottom=112
-
-[Field 17]
-Type="Text"
-Left=40
-Top=102
-Right=128
-Bottom=114
-
-[Field 18]
-Type="Label"
-Text="(eg. servername-mon)"
-Left=136
-Top=104
-Right=288
-Bottom=112
-
-[Field 19]
-Type="Label"
-Text="Password"
-Left=6
-Top=118
-Right=36
-Bottom=126
-
-[Field 20]
-Type="Text"
-Left=40
-Top=116
-Right=288
-Bottom=128
stored \
console \
wx-console \
- tools
+ tools \
+ installer
.PHONY: $(DIRS) clean all
echo -e "\n!!!!! Make of $@ failed !!!!!\n\n" ; \
fi
-Makefile.inc: Makefile.inc.cross
+Makefile.inc: Makefile.inc.in
@echo Creating $@
- $(ECHO_CMD)sed -e "s^@TOPDIR@^`(cd ../../..;pwd)`^" < Makefile.inc.cross > $@
+ $(ECHO_CMD)TOPDIR=`(cd ../../..;pwd)`; \
+ if test -e ../../../cross-tools/mingw32/bin/mingw32-gcc; then \
+ BINDIR=$${TOPDIR}/cross-tools/mingw32/bin; \
+ INCDIR=$${TOPDIR}/cross-tools/mingw32/mingw32/include; \
+ elif test -e /mingw/bin/mingw32-gcc; then \
+ BINDIR=/mingw/bin; \
+ INCDIR=/mingw/include; \
+ else \
+ echo -e "\nThe GCC cross compiler isn't installed."; \
+ echo -e "You must run build-win32-cross-tools and build-dependencies first.\n"; \
+ exit 1; \
+ fi ; \
+ sed -e "s^@TOPDIR@^$${TOPDIR}^" \
+ -e "s^@BINDIR@^$${BINDIR}^" \
+ -e "s^@INCDIR@^$${INCDIR}^" < Makefile.inc.in > $@
+++ /dev/null
-#
-# Makefile for win32 bacula executables
-# Using MinGW cross-compiler on GNU/Linux
-#
-# Written by Robert Nelson, June 2006
-#
-
-# Global Configuration
-
-ECHO_CMD = @
-
-TOPDIR = @TOPDIR@
-DEPKGS = $(TOPDIR)/depkgs-mingw32
-
-MINGW_BIN = $(TOPDIR)/cross-tools/mingw32/bin
-MINGW_INCLUDE = $(TOPDIR)/cross-tools/mingw32/mingw32/include
-
-CC = $(MINGW_BIN)/mingw32-g++ $(DEFINES) $(INCLUDES)
-CXX = $(MINGW_BIN)/mingw32-g++ $(DEFINES) $(INCLUDES)
-AR = $(MINGW_BIN)/mingw32-ar
-RANLIB = $(MINGW_BIN)/mingw32-ranlib
-WINDRES = $(MINGW_BIN)/mingw32-windres
-OBJCPY = $(MINGW_BIN)/mingw32-objcopy
-
-CFLAGS = -Wall -mno-cygwin -m32 -mwin32 -mthreads -O3 -fno-strict-aliasing
-LDFLAGS = -Wall -mno-cygwin -Wl,--disable-auto-import
-
-INCLUDE_DDK = -I$(MINGW_INCLUDE)/ddk
-INCLUDE_BACULA = -I../.. -I../compat
-INCLUDE_PTHREADS = -I$(DEPKGS)/include/pthreads
-INCLUDE_ZLIB = -I$(DEPKGS)/include
-INCLUDE_VSS = -I$(DEPKGS)/vss
-INCLUDE_ICONS = -I../libwin32
-INCLUDE_OPENSSL = -I$(DEPKGS)/include
-INCLUDE_WX = -I$(DEPKGS)/lib/wx_dll/msw -I$(DEPKGS)/include
-INCLUDE_MYSQL = -I$(DEPKGS)/include/mysql
-
-LIBS_PTHREADS = \
- $(DEPKGS)/lib/libpthreadGCE.a
-
-LIBS_ZLIB = \
- $(DEPKGS)/lib/libz.a
-
-LIBS_SQL = \
- $(DEPKGS)/lib/libmysql.a
-
-LIBS_SSL = \
- $(DEPKGS)/lib/libssl.dll.a
-
-LIBS_CRYPTO = \
- $(DEPKGS)/lib/libcrypto.dll.a
-
-LIBS_WX = \
- $(DEPKGS)/lib/wx_dll/libwxmsw26_core.a \
- $(DEPKGS)/lib/wx_dll/libwxbase26.a
-
-LIBS_BACULA = \
- $(LIBDIR)/libbacula.a
-
-HAVES = \
- -DHAVE_WIN32 \
- -DHAVE_MINGW \
- -DHAVE_ZLIB_H \
- -DHAVE_LIBZ \
- -DHAVE_MYSQL \
- -DHAVE_CRYPTO \
- -DHAVE_OPENSSL \
- -DHAVE_TLS
-
-BINDIR = ../release
-LIBDIR = ../release
-OBJDIR = .
--- /dev/null
+#
+# Makefile for win32 bacula executables
+# Using MinGW cross-compiler on GNU/Linux
+#
+# Written by Robert Nelson, June 2006
+#
+
+# Global Configuration
+
+ECHO_CMD = @
+
+TOPDIR := @TOPDIR@
+DEPKGS := $(TOPDIR)/depkgs-mingw32
+
+DOCDIR := $(TOPDIR)/docs
+BINDIR := ../release
+LIBDIR := ../release
+OBJDIR := .
+
+MINGW_BIN := @BINDIR@
+MINGW_INCLUDE := @INCDIR@
+
+CC = $(MINGW_BIN)/mingw32-g++ $(DEFINES) $(INCLUDES)
+CXX = $(MINGW_BIN)/mingw32-g++ $(DEFINES) $(INCLUDES)
+AR := $(MINGW_BIN)/mingw32-ar
+RANLIB := $(MINGW_BIN)/mingw32-ranlib
+WINDRES := $(MINGW_BIN)/mingw32-windres
+OBJCPY := $(MINGW_BIN)/mingw32-objcopy
+NSIS_DIR := $(DEPKGS)/nsis
+
+CFLAGS := -Wall -mno-cygwin -m32 -mwin32 -mthreads -O3 -fno-strict-aliasing
+LDFLAGS := -Wall -mno-cygwin -Wl,--disable-auto-import
+
+INCLUDE_DDK := -I$(MINGW_INCLUDE)/ddk
+INCLUDE_BACULA := -I../.. -I../compat
+INCLUDE_PTHREADS := -I$(DEPKGS)/include/pthreads
+INCLUDE_ZLIB := -I$(DEPKGS)/include
+INCLUDE_VSS := -I$(DEPKGS)/vss
+INCLUDE_ICONS := -I../libwin32
+INCLUDE_OPENSSL := -I$(DEPKGS)/include
+INCLUDE_WX := -I$(DEPKGS)/lib/wx_dll/msw -I$(DEPKGS)/include
+INCLUDE_MYSQL := -I$(DEPKGS)/include/mysql
+
+LIBS_PTHREADS := \
+ $(DEPKGS)/lib/libpthreadGCE.a
+
+LIBS_ZLIB := \
+ $(DEPKGS)/lib/libz.a
+
+LIBS_SQL := \
+ $(DEPKGS)/lib/libmysql.a
+
+LIBS_SSL := \
+ $(DEPKGS)/lib/libssl.dll.a
+
+LIBS_CRYPTO := \
+ $(DEPKGS)/lib/libcrypto.dll.a
+
+LIBS_WX := \
+ $(DEPKGS)/lib/wx_dll/libwxmsw26_core.a \
+ $(DEPKGS)/lib/wx_dll/libwxbase26.a
+
+LIBS_BACULA := \
+ $(LIBDIR)/libbacula.a
+
+HAVES := \
+ -DHAVE_WIN32 \
+ -DHAVE_MINGW \
+ -DHAVE_ZLIB_H \
+ -DHAVE_LIBZ \
+ -DHAVE_MYSQL \
+ -DHAVE_CRYPTO \
+ -DHAVE_OPENSSL \
+ -DHAVE_TLS
+++ /dev/null
-#
-# Makefile for win32 bacula executables
-# Using MinGW cross-compiler on GNU/Linux
-#
-# Written by Robert Nelson, June 2006
-#
-
-# Global Configuration
-
-ECHO_CMD = @
-
-TOPDIR = /c/src/bacula-1.38.9
-DEPKGS = $(TOPDIR)/depkgs-mingw
-
-MINGW_BIN = /mingw/bin
-MINGW_INCLUDE = /mingw/include
-
-CC = $(MINGW_BIN)/g++ $(DEFINES) $(INCLUDES)
-CXX = $(MINGW_BIN)/g++ $(DEFINES) $(INCLUDES)
-AR = $(MINGW_BIN)/ar
-RANLIB = $(MINGW_BIN)/ranlib
-WINDRES = $(MINGW_BIN)/windres
-OBJCPY = $(MINGW_BIN)/objcopy
-
-#CFLAGS = -ffunction-sections -fdata-sections -O3 -fno-strict-aliasing
-#LDFLAGS = -Wl,--gc-sections -Wl,--disable-auto-import
-
-CFLAGS = -Wall -mno-cygwin -m32 -mwin32 -mthreads -O3 -fno-strict-aliasing
-LDFLAGS = -Wall -mno-cygwin -Wl,--disable-auto-import
-
-INCLUDE_DDK = -I$(MINGW_INCLUDE)/ddk
-INCLUDE_BACULA = -I../.. -I../compat
-INCLUDE_PTHREADS = -I$(DEPKGS)/pthreads
-INCLUDE_ZLIB = -I$(DEPKGS)/zlib
-INCLUDE_VSS = -I"$(subst C:,/c,$(subst \,/,$(VSSSDK_DIR)))"
-INCLUDE_ICONS = -I../libwin32
-INCLUDE_OPENSSL = -I$(DEPKGS)/openssl/outinc
-INCLUDE_WX = -I$(DEPKGS)/wx/lib/gcc_lib/msw -I$(DEPKGS)/wx/include
-INCLUDE_MYSQL = -I$(DEPKGS)/mysql/include
-
-LIBS_PTHREADS = \
- $(DEPKGS)/pthreads/libpthreadGCE.a
-
-LIBS_ZLIB = \
- $(DEPKGS)/zlib/libz.a
-
-LIBS_SQL = \
- $(DEPKGS)/mysql/lib/opt/libmysql.lib
-
-LIBS_SSL = \
- $(DEPKGS)/openssl/out/libssl.a
-
-LIBS_CRYPTO = \
- $(DEPKGS)/openssl/out/libcrypto.a
-
-LIBS_WX = \
- $(DEPKGS)/wx/lib/gcc_lib/libwxmsw26_core.a \
- $(DEPKGS)/wx/lib/gcc_lib/libwxbase26.a
-
-LIBS_BACULA = \
- $(LIBDIR)/libbacula.a
-
-HAVES = \
- -DHAVE_WIN32 \
- -DHAVE_MINGW \
- -DHAVE_ZLIB_H \
- -DHAVE_LIBZ \
- -DHAVE_MYSQL \
- -DHAVE_CRYPTO \
- -DHAVE_OPENSSL \
- -DHAVE_TLS
-
-BINDIR = ../release
-LIBDIR = ../release
-OBJDIR = .
@echo "Linking $@"
$(call checkdir,$@)
$(ECHO_CMD)$(CXX) $(CFLAGS) $(LDFLAGS) -mconsole $^ $(1) -o $@
- $(makedbg)
endef
define link_winapp
@echo "Linking $@"
$(call checkdir,$@)
$(ECHO_CMD)$(CXX) $(CFLAGS) $(LDFLAGS) -mwindows $^ $(1) -o $@
- $(makedbg)
endef
define makedbg
Normally the files will be installed in:
- c:/Program Files/VSSSDK72
+ c:/Program Files/Microsoft/VSSSDK72
You only need to copy everything under the c:/Program Files/VSSSDK72/inc
directory into ..../depkgs-mingw32/vss/inc.
./build-dependencies openssl
-Structure of the new Win32 build environment (from Robert):
+Structure of the new Win32 build environment:
-I've redesigned the minw32 build somewhat, much thanks to Kern and Howard
-for the initial work.
-
-For doing a build it is very simple, type make in src/win32 or whichever
-subdirectory you are working on. For those maintaining it, its a little
-more complicated :-)
-
-Here is some documentation for the maintainers.
-
-The basic strategy is each makefile in the various subdirectories includes
+The basic strategy is each Makefile in the various subdirectories includes
Makefile.inc, defines variables and rules specific to what is being built,
then includes Makefile.rules which defines all the rules.
Makefile.inc defines the locations of all the dependencies and the compiler
-and linker flags. It is automatically created from Makefile.inc.cross. Any
-changes must be made to Makefile.inc.cross not Makefile.inc or they will be
-overwritten the next time Makefile.inc.cross is updated. There is also a
-file called Makefile.inc.native. This file is used for MinGW32 running on
-Windows. However at this time it probably isn't useful to anyone but me
-since the locations aren't updated automatically.
+and linker flags. It is automatically created from Makefile.inc.in. Any
+changes must be made to Makefile.inc.in not Makefile.inc or they will be
+overwritten the next time Makefile.inc.in is updated.
Makefile.rules defines a bunch of macros to simplify building. It also
includes all the basic rules for building objects, GUI and console
+++ /dev/null
-rem
-rem Bacula start file for Win95/98/Me
-rem
-cd c:\bacula\bin
-c:\bacula\bin\bacula-fd.exe /service -c c:\bacula\bin\bacula-fd.conf
+++ /dev/null
-rem
-rem Bacula stop file for Win95/98/Me
-rem
-cd c:\bacula\bin
-c:\bacula\bin\bacula-fd.exe /kill
+++ /dev/null
-;NSIS Modern User Interface version 1.63
-;Start Menu Folder Selection Example Script
-;Written by Joost Verburg
-
-!define MUI_PRODUCT "Bacula" ;Define your own software name here
-!define MUI_VERSION "1.33.4" ;Define your own software version here
-
-!include "MUI.nsh"
-!include "util.nsh"
-
-;--------------------------------
-;Configuration
-
- ;General
- OutFile "bacula-install.exe"
-
- ;Folder selection page
- InstallDir "$PROGRAMFILES\${MUI_PRODUCT}"
-
- ;Remember install folder
- InstallDirRegKey HKCU "Software\${MUI_PRODUCT}" ""
-
- ;$9 is being used to store the Start Menu Folder.
- ;Do not use this variable in your script (or Push/Pop it)!
-
- ;To change this variable, use MUI_STARTMENUPAGE_VARIABLE.
- ;Have a look at the Readme for info about other options (default folder,
- ;registry).
-
- ;Remember the Start Menu Folder
- !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU"
- !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\${MUI_PRODUCT}"
- !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
-
- !define TEMP $R0
-
-;--------------------------------
-;Modern UI Configuration
-
- !define MUI_LICENSEPAGE
- !define MUI_COMPONENTSPAGE
- !define MUI_DIRECTORYPAGE
- !define MUI_STARTMENUPAGE
-
- !define MUI_ABORTWARNING
-
- !define MUI_UNINSTALLER
- !define MUI_UNCONFIRMPAGE
-
-;--------------------------------
-;Languages
-
- !insertmacro MUI_LANGUAGE "English"
-
-;--------------------------------
-;Language Strings
-
- ;Description
- LangString DESC_SecCopyUI ${LANG_ENGLISH} "Install Bacula client on this system."
-
-;--------------------------------
-;Data
-
- LicenseData "License.txt"
-
-;--------------------------------
-;Installer Sections
-
-Section "Bacula File Service" SecCopyUI
-
- ;ADD YOUR OWN STUFF HERE!
-
- SetOutPath "$INSTDIR"
- File baculafd\Release\bacula-fd.exe
- File pthreads\pthreadVCE.dll
- IfFileExists "$INSTDIR\bacula-fd.conf" sconf
- File bacula-fd.conf
- goto doDir
- sconf:
- File /oname=bacula-fd.conf.N bacula-fd.conf
- doDir:
- CreateDirectory "$INSTDIR\working"
-
- ;Store install folder
- WriteRegStr HKCU "Software\${MUI_PRODUCT}" "" $INSTDIR
-
- !insertmacro MUI_STARTMENU_WRITE_BEGIN
-
- ;Create shortcuts
- CreateDirectory "$SMPROGRAMS\${MUI_STARTMENUPAGE_VARIABLE}"
- CreateShortCut "$SMPROGRAMS\${MUI_STARTMENUPAGE_VARIABLE}\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
- Call IsNT
- Pop $R0
- StrCmp $R0 "false" do98sc
-
- CreateShortCut "$SMPROGRAMS\${MUI_STARTMENUPAGE_VARIABLE}\Start Service.lnk" "$SYSDIR\net.exe" "start bacula" "$INSTDIR\bacula-fd.exe" 2
- CreateShortCut "$SMPROGRAMS\${MUI_STARTMENUPAGE_VARIABLE}\Stop Service.lnk" "$SYSDIR\net.exe" "stop bacula" "$INSTDIR\bacula-fd.exe" 3
- goto scend
- do98sc:
-
- CreateShortCut "$SMPROGRAMS\${MUI_STARTMENUPAGE_VARIABLE}\Start Service.lnk" "$INSTDIR\bacula-fd.exe" "-c bacula-fd.conf" "$INSTDIR\bacula-fd.exe" 2
- CreateShortCut "$SMPROGRAMS\${MUI_STARTMENUPAGE_VARIABLE}\Stop Service.lnk" "$INSTDIR\bacula-fd.exe" "/kill" "$INSTDIR\bacula-fd.exe" 3
- scend:
- !insertmacro MUI_STARTMENU_WRITE_END
-
- ;Create uninstaller
- WriteUninstaller "$INSTDIR\Uninstall.exe"
-
- ; Install service
- ExecWait '"$INSTDIR\bacula-fd.exe" /install -c "$INSTDIR\bacula-fd.conf"'
-
-SectionEnd
-
-;Display the Finish header
-;Insert this macro after the sections if you are not using a finish page
-!insertmacro MUI_SECTIONS_FINISHHEADER
-
-;--------------------------------
-;Descriptions
-
-!insertmacro MUI_FUNCTIONS_DESCRIPTION_BEGIN
-!insertmacro MUI_DESCRIPTION_TEXT ${SecCopyUI} $(DESC_SecCopyUI)
-!insertmacro MUI_FUNCTIONS_DESCRIPTION_END
-
-;--------------------------------
-;Uninstaller Section
-
-Section "Uninstall"
-
- ;ADD YOUR OWN STUFF HERE!
- ExecWait '"$INSTDIR\bacula-fd.exe" /kill'
- Sleep 1000
- ExecWait '"$INSTDIR\bacula-fd.exe" /remove'
- Sleep 1000
-
- Delete "$INSTDIR\bacula-fd.exe"
- Delete "$INSTDIR\bacula-fd.conf.N"
- Delete "$INSTDIR\pthreadVCE.dll"
- Delete "$INSTDIR\Uninstall.exe"
- RMDir "$INSTDIR\working"
- ;Remove shortcut
- ReadRegStr ${TEMP} "${MUI_STARTMENUPAGE_REGISTRY_ROOT}" "${MUI_STARTMENUPAGE_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_REGISTRY_VALUENAME}"
-
- StrCmp ${TEMP} "" noshortcuts
-
- Delete "$SMPROGRAMS\${TEMP}\Uninstall.lnk"
- Delete "$SMPROGRAMS\${TEMP}\Start Service.lnk"
- Delete "$SMPROGRAMS\${TEMP}\Stop Service.lnk"
- RMDir "$SMPROGRAMS\${TEMP}" ;Only if empty, so it won't delete other shortcuts
-
- noshortcuts:
-
- RMDir "$INSTDIR"
-
- DeleteRegKey /ifempty HKCU "Software\${MUI_PRODUCT}"
-
- ;Display the Finish header
- !insertmacro MUI_UNFINISHHEADER
-
-SectionEnd
+#!/bin/sh
+
VERBOSE=n
OVERWRITE=n
cd ../../..
TOP_DIR=`pwd`
-if [ ! -e ${TOP_DIR}/cross-tools/mingw32/bin/mingw32-gcc ]
+if [ -e ${TOP_DIR}/cross-tools/mingw32/bin/mingw32-gcc ]
+then
+ cd ${TOP_DIR}/cross-tools/mingw32/bin
+ BIN_DIR=`pwd`
+elif [ -e /mingw/bin/mingw32-gcc ]
then
+ BIN_DIR=/mingw/bin
+else
echo The GCC cross compiler isn\'t installed.
echo You must run build-win32-cross-tools first
exit 1
fi
-cd ${TOP_DIR}/cross-tools/mingw32/bin
-BIN_DIR=`pwd`
-
[ ! -e ${TOP_DIR}/depkgs-mingw32 ] && mkdir ${TOP_DIR}/depkgs-mingw32
cd ${TOP_DIR}/depkgs-mingw32
DEPPKG_DIR=`pwd`
{
get_source "${URL_MYSQL}" "${DIR_MYSQL}"
echo Converting mysql lib file
- ${BIN_DIR}/../mingw32/bin/reimp --dlltool ${BIN_DIR}/mingw32-dlltool --as ${BIN_DIR}/mingw32-as lib/opt/libmysql.lib
+ if [ -e ${BIN_DIR}/reimp ]
+ then
+ reimp --dlltool ${BIN_DIR}/mingw32-dlltool --as ${BIN_DIR}/mingw32-as lib/opt/libmysql.lib
+ else
+ ${BIN_DIR}/../mingw32/bin/reimp --dlltool ${BIN_DIR}/mingw32-dlltool --as ${BIN_DIR}/mingw32-as lib/opt/libmysql.lib
+ fi
echo Installing mysql
cp -p liblibmysql.a ../../lib/libmysql.a
rm -rf ../../include/mysql
echo Building wxWidgets
cd build/msw
> make.log
- do_make makefile.mingw32 SHARED=1 VENDOR=bacula
+ do_make makefile.mingw32 SHARED=1 VENDOR=bacula DEBUG_INFO=1
echo Installing wxWidgets
cd ../..
rm -rf ../../include/wx
do_patch mt.patch
fi
echo Building mt
- do_make Makefile prefix=${DEPPKG_DIR} all
+ do_make Makefile PREFIX=${DEPPKG_DIR} all
echo Installing mt
do_make Makefile PREFIX=${DEPPKG_DIR} install
}
process_scons
process_nsis
process_mtx
+ process_mt
else
for dependency in "$@"
do
#
$(BINDIR)/bconsole.exe: $(CONSOLE_OBJS) $(LIBS_BACULA)
- $(call link_winapp,$(CONSOLE_LIBS))
+ $(call link_conapp,$(CONSOLE_LIBS))
include ../Makefile.rules
+++ /dev/null
-..\lib\address_conf
-..\lib\alist
-..\lib\base64
-..\lib\berrno
-..\lib\bnet
-..\lib\bsys
-..\lib\btime
-..\lib\btimers
-..\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\tls
-..\lib\util
-..\lib\watchdog
-..\lib\winapi
-..\compat\compat
-..\compat\print
-.\authenticate
-.\console
-.\console_conf
-.\StdAfx
+++ /dev/null
-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
// Post the message to Bacula
PostMessage(hservwnd, message, wParam, lParam);
#endif
- return TRUE;
+ return FALSE;
}
_Z11db_strerrorP4B_DB
;_Z11list_dashesP4B_DBPFvPvPKcES1_
;_Z11list_resultP3JCRP4B_DBPFvPvPKcES3_11e_list_type
+_Z16db_int64_handlerPviPPc
_Z18db_end_transactionP3JCRP4B_DB
;_Z18get_sql_record_maxP3JCRP4B_DB
;_Z19split_path_and_fileP3JCRP4B_DBPKc
--- /dev/null
+[Settings]
+NumFields=20
+
+[Field 1]
+Type="GroupBox"
+Text="Client"
+Left=0
+Top=0
+Right=300
+Bottom=52
+
+[Field 2]
+Type="Label"
+Text="Name"
+Left=6
+Top=10
+Right=40
+Bottom=18
+
+[Field 3]
+Type="Text"
+Left=40
+Top=8
+Right=128
+Bottom=20
+
+[Field 4]
+Type="Label"
+Text="(eg. hostname-fd)"
+Left=136
+Top=10
+Right=288
+Bottom=18
+
+[Field 5]
+Type="Label"
+Text="Port"
+Left=6
+Top=24
+Right=40
+Bottom=32
+
+[Field 6]
+Type="Text"
+Flags=ONLY_NUMBERS
+Left=40
+Top=22
+Right=68
+Bottom=34
+
+[Field 7]
+Type="Label"
+Text="Max Jobs"
+Left=6
+Top=38
+Right=40
+Bottom=46
+
+[Field 8]
+Type="Text"
+Flags=ONLY_NUMBERS
+Left=40
+Top=36
+Right=56
+Bottom=48
+
+[Field 9]
+Type="GroupBox"
+Text="Director"
+Left=0
+Top=54
+Right=300
+Bottom=92
+
+[Field 10]
+Type="Label"
+Text="Name"
+Left=6
+Top=64
+Right=40
+Bottom=72
+
+[Field 11]
+Type="Text"
+Left=40
+Top=62
+Right=128
+Bottom=74
+
+[Field 12]
+Type="Label"
+Text="(eg. servername-dir)"
+Left=136
+Top=64
+Right=288
+Bottom=72
+
+[Field 13]
+Type="Label"
+Text="Password"
+Left=6
+Top=78
+Right=40
+Bottom=86
+
+[Field 14]
+Type="Text"
+Left=40
+Top=76
+Right=288
+Bottom=88
+
+[Field 15]
+Type="GroupBox"
+Text="Monitor"
+Left=0
+Top=94
+Right=300
+Bottom=132
+
+[Field 16]
+Type="Label"
+Text="Name"
+Left=6
+Top=104
+Right=40
+Bottom=112
+
+[Field 17]
+Type="Text"
+Left=40
+Top=102
+Right=128
+Bottom=114
+
+[Field 18]
+Type="Label"
+Text="(eg. servername-mon)"
+Left=136
+Top=104
+Right=288
+Bottom=112
+
+[Field 19]
+Type="Label"
+Text="Password"
+Left=6
+Top=118
+Right=36
+Bottom=126
+
+[Field 20]
+Type="Text"
+Left=40
+Top=116
+Right=288
+Bottom=128
--- /dev/null
+#
+# Makefile for win32 bacula executables
+# Using MinGW cross-compiler on GNU/Linux
+#
+# Written by Robert Nelson, June 2006
+#
+
+include ../Makefile.inc
+
+VERSION := $(shell sed -ne 's/.*[ \t]VERSION[ \t]\+"\(.*\)"/\1/p' < ../../version.h)
+
+DEFINES := \
+ -DVERSION=$(VERSION) \
+ -DBINDIR=$(BINDIR) \
+ -DDOCDIR=$(DOCDIR) \
+ -DDEPKGS=$(DEPKGS) \
+ -DMINGW_BIN=$(MINGW_BIN)
+
+INSTALL_EXE := winbacula-$(VERSION).exe
+
+BACULA_BINARIES := \
+ bacula.dll \
+ bacula-dir.exe \
+ bacula-fd.exe \
+ bacula-sd.exe \
+ bconsole.exe \
+ bcopy.exe \
+ bextract.exe \
+ bls.exe \
+ bscan.exe \
+ btape.exe \
+ dbcheck.exe \
+ wx-console.exe
+
+DEPKGS_BINARIES := \
+ libeay32.dll \
+ libmysql.dll \
+ pthreadGCE.dll \
+ ssleay32.dll \
+ zlib1.dll \
+ openssl.exe \
+ loaderinfo.exe \
+ mt.exe \
+ mtx.exe \
+ scsitape.exe \
+ tapeinfo.exe \
+ wxbase26_gcc_bacula.dll \
+ wxmsw26_core_gcc_bacula.dll
+
+SCRIPTS := \
+ ../scripts/mtx-changer.cmd.in \
+ ../cats/create_mysql_database.cmd \
+ ../cats/drop_mysql_database.cmd \
+ ../cats/make_mysql_tables.cmd \
+ ../cats/make_mysql_tables.sql \
+ ../cats/drop_mysql_tables.cmd \
+ ../cats/drop_mysql_tables.sql \
+ ../cats/update_mysql_tables.cmd \
+ ../cats/update_mysql_tables.sql \
+ ../cats/grant_mysql_privileges.cmd \
+ ../cats/grant_mysql_privileges.sql \
+ ../cats/make_catalog_backup.cmd \
+ ../cats/delete_catalog_backup.cmd
+
+##########################################################################
+
+# Targets
+
+.PHONY: all clean installer
+
+all:
+
+installer: $(INSTALL_EXE)
+
+clean:
+ @echo "Cleaning `pwd`"
+ $(CMD_ECHO)-rm -f $(INSTALL_EXE) $(BACULA_BINARIES) $(DEPKGS_BINARIES)
+ $(CMD_ECHO)-rm -f $(BACULA_BINARIES) $(addsuffix .dbg,$(basename $(BACULA_BINARIES)))
+ $(CMD_ECHO)-rm -f $(DEPKGS_BINARIES) $(addsuffix .dbg,$(basename $(DEPKGS_BINARIES)))
+
+#
+# Rules
+#
+
+define Strip_Binary
+$$(notdir $(1)): $(1)
+ $(ECHO_CMD)cp -f $$^ $$@
+ $$(call makedbg,$$@)
+endef
+
+$(foreach file,$(addprefix $(DEPKGS)/bin/, $(DEPKGS_BINARIES)),$(eval $(call Strip_Binary,$(file))))
+
+$(foreach file,$(addprefix $(BINDIR)/, $(BACULA_BINARIES)),$(eval $(call Strip_Binary,$(file))))
+
+$(INSTALL_EXE): winbacula.nsi $(BACULA_BINARIES) $(SCRIPTS) $(DEPKGS_BINARIES)
+ NSISDIR=$(NSIS_DIR) \
+ $(NSIS_DIR)/makensis -V3 $(DEFINES) winbacula.nsi
+
+include ../Makefile.rules
--- /dev/null
+rem
+rem Bacula start file for Win95/98/Me
+rem
+cd c:\bacula\bin
+c:\bacula\bin\bacula-fd.exe /service -c c:\bacula\bin\bacula-fd.conf
--- /dev/null
+rem
+rem Bacula stop file for Win95/98/Me
+rem
+cd c:\bacula\bin
+c:\bacula\bin\bacula-fd.exe /kill
--- /dev/null
+; winbacula.nsi
+;
+; Began as a version written by Michel Meyers (michel@tcnnet.dyndns.org)
+;
+; Adapted by Kern Sibbald for native Win32 Bacula
+; added a number of elements from Christopher Hull's installer
+;
+; D. Scott Barninger Nov 13 2004
+; added configuration editing for bconsole.conf and wx-console.conf
+; better explanation in dialog boxes for editing config files
+; added Start Menu items
+; fix uninstall of config files to do all not just bacula-fd.conf
+;
+; D. Scott Barninger Dec 05 2004
+; added specification of default permissions for bacula-fd.conf
+; - thanks to Jamie Ffolliott for pointing me at cacls
+; added removal of working-dir files if user selects to remove config
+; uninstall is now 100% clean
+;
+; D. Scott Barninger Apr 17 2005
+; 1.36.3 release docs update
+; add pdf manual and menu shortcut
+;
+; Robert Nelson May 15 2006
+; Pretty much rewritten
+; Use LogicLib.nsh
+; Added Bacula-SD and Bacula-DIR
+; Replaced ParameterGiven with standard GetOptions
+
+;
+; Command line options:
+;
+; /cygwin - do cygwin install into c:\cygwin\bacula
+; /service -
+; /start
+
+!define PRODUCT "Bacula"
+!define BUILD_TOOLS "MinGW"
+
+;
+; Include the Modern UI
+;
+!include "MUI.nsh"
+!include "LogicLib.nsh"
+!include "FileFunc.nsh"
+
+;
+; Basics
+;
+ Name "Bacula"
+ OutFile "winbacula-${VERSION}.exe"
+ SetCompressor lzma
+ InstallDir "$PROGRAMFILES\Bacula"
+ InstallDirRegKey HKLM Software\Bacula InstallLocation
+
+ InstType "Client"
+ InstType "Server"
+ InstType "Full"
+
+;
+; Pull in pages
+;
+
+ !insertmacro MUI_PAGE_WELCOME
+; !insertmacro MUI_PAGE_LICENSE "..\..\LICENSE"
+ !insertmacro MUI_PAGE_COMPONENTS
+ !insertmacro MUI_PAGE_DIRECTORY
+ Page custom EnterClientConfig LeaveClientConfig
+ Page custom EnterOptions
+ !insertmacro MUI_PAGE_INSTFILES
+ !insertmacro MUI_PAGE_FINISH
+
+ !insertmacro MUI_UNPAGE_WELCOME
+ !insertmacro MUI_UNPAGE_CONFIRM
+ !insertmacro MUI_UNPAGE_INSTFILES
+ !insertmacro MUI_UNPAGE_FINISH
+
+ !define MUI_ABORTWARNING
+
+ !insertmacro MUI_LANGUAGE "English"
+
+ !insertmacro GetParameters
+ !insertmacro GetOptions
+
+DirText "Setup will install Bacula ${VERSION} to the directory specified below. To install in a different folder, click Browse and select another folder.$\n$\nNote to CYGWIN users: please choose your CYGWIN root directory."
+
+;
+; Reserve Files
+;
+ ReserveFile "ClientConfig.ini"
+ !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
+;
+; Global Variables
+;
+Var OptCygwin
+Var OptService
+Var OptStart
+Var OptSilent
+
+Var DependenciesDone
+
+Var OsIsNT
+
+Var ConfigClientName
+Var ConfigClientPort
+Var ConfigMaxJobs
+Var ConfigDirectorName
+Var ConfigDirectorPW
+Var ConfigMonitorName
+Var ConfigMonitorPW
+
+Var OptionsClientService
+Var OptionsClientStart
+Var OptionsStorageService
+Var OptionsStorageStart
+Var OptionsDirectorService
+Var OptionsDirectorStart
+Var OptionsDirectorDB
+
+Var HDLG
+Var HCTL
+
+Function .onInit
+ Push $R0
+ Push $R1
+
+ ; Process Command Line Options
+ StrCpy $OptCygwin 0
+ StrCpy $OptService 0
+ StrCpy $OptStart 0
+ StrCpy $OptSilent 0
+ StrCpy $DependenciesDone 0
+ StrCpy $OsIsNT 0
+
+ ${GetParameters} $R0
+
+ ClearErrors
+ ${GetOptions} $R0 "/cygwin" $R1
+ IfErrors +2
+ StrCpy $OptCygwin 1
+
+ ClearErrors
+ ${GetOptions} $R0 "/service" $R1
+ IfErrors +2
+ StrCpy $OptService 1
+
+ ClearErrors
+ ${GetOptions} $R0 "/start" $R1
+ IfErrors +2
+ StrCpy $OptStart 1
+
+ IfSilent 0 +2
+ StrCpy $OptSilent 1
+
+ ${If} $OptCygwin = 1
+ StrCpy $INSTDIR "C:\cygwin\bacula"
+ ${EndIf}
+
+ ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
+ ${If} $R0 != ""
+ StrCpy $OsIsNT 1
+ ${EndIf}
+
+ !insertmacro MUI_INSTALLOPTIONS_EXTRACT "ClientConfig.ini"
+
+ Pop $R1
+ Pop $R0
+FunctionEnd
+
+Function CopyDependencies
+ SetOutPath "$INSTDIR\bin"
+
+ ${If} $DependenciesDone = 0
+!if "${BUILD_TOOLS}" == "VC8"
+ File "${VC_REDIST_DIR}\msvcm80.dll"
+ File "${VC_REDIST_DIR}\msvcp80.dll"
+ File "${VC_REDIST_DIR}\msvcr80.dll"
+ File "${VC_REDIST_DIR}\Microsoft.VC80.CRT.manifest"
+!endif
+!if "${BUILD_TOOLS}" == "MinGW"
+ File "${MINGW_BIN}\..\mingw32\bin\mingwm10.dll"
+!endif
+ File "libeay32.dll"
+ File "libmysql.dll"
+ File "pthreadGCE.dll"
+ File "ssleay32.dll"
+ File "zlib1.dll"
+ File "openssl.exe"
+ File "bacula.dll"
+ StrCpy $DependenciesDone 1
+ ${EndIf}
+FunctionEnd
+
+Section "-Initialize"
+ ; Create Start Menu Directory
+
+ WriteRegStr HKLM Software\Bacula InstallLocation "$INSTDIR"
+
+ SetShellVarContext all
+ CreateDirectory "$SMPROGRAMS\Bacula"
+
+ CreateDirectory "$INSTDIR"
+ CreateDirectory "$INSTDIR\bin"
+ CreateDirectory "$APPDATA\Bacula"
+
+ File "..\..\..\LICENSE"
+ Delete /REBOOTOK "$INSTDIR\bin\License.txt"
+SectionEnd
+
+SectionGroup "Client"
+
+Section "File Service" SecFileDaemon
+ SectionIn 1 2 3
+
+ SetOutPath "$INSTDIR\bin"
+ File "bacula-fd.exe"
+
+ StrCpy $R0 0
+ StrCpy $R1 "$APPDATA\Bacula\bacula-fd.conf"
+ IfFileExists $R1 0 +3
+ StrCpy $R0 1
+ StrCpy $R1 "$R1.new"
+
+ File /oname=$R1 ..\filed\bacula-fd.conf.in
+
+ ${If} $OptSilent <> 1
+ ${AndIf} $R0 <> 1
+ MessageBox MB_OK \
+ "Please edit the configuration file $R1 to fit your installation. When you click the OK button Wordpad will open to allow you to do this. Be sure to save your changes before closing Wordpad."
+ Exec 'write "$R1"' ; spawn wordpad with the file to be edited
+ ${EndIf}
+ ${If} $OsIsNT = 1
+ ExecWait 'cmd.exe /C echo Y|cacls "$R1" /G SYSTEM:F Administrators:F'
+ ${EndIf}
+
+ StrCpy $0 bacula-fd
+ StrCpy $1 "File Service"
+ StrCpy $2 $OptionsClientService
+ StrCpy $3 $OptionsClientStart
+
+ Call InstallDaemon
+
+ CreateShortCut "$SMPROGRAMS\Bacula\Edit Client Configuration.lnk" "write.exe" '"$APPDATA\Bacula\bacula-fd.conf"'
+SectionEnd
+
+SectionGroupEnd
+
+SectionGroup "Server"
+
+Section "Storage Service" SecStorageDaemon
+ SectionIn 2 3
+
+ SetOutPath "$INSTDIR\bin"
+ File "loaderinfo.exe"
+ File "mt.exe"
+ File "mtx.exe"
+ File "scsitape.exe"
+ File "tapeinfo.exe"
+ File "bacula-sd.exe"
+ File "bcopy.exe"
+ File "bextract.exe"
+ File "bls.exe"
+ File "bscan.exe"
+ File "btape.exe"
+ File /oname=mtx-changer.cmd ..\scripts\mtx-changer.cmd.in
+
+ StrCpy $R0 0
+ StrCpy $R1 "$APPDATA\Bacula\bacula-sd.conf"
+ IfFileExists $R1 0 +3
+ StrCpy $R0 1
+ StrCpy $R1 "$R1.new"
+
+ File /oname=$R1 "..\..\stored\bacula-sd.conf.in"
+
+ ${If} $OptSilent <> 1
+ ${AndIf} $R0 <> 1
+ MessageBox MB_OK \
+ "Please edit the configuration file $R1 to fit your installation. When you click the OK button Wordpad will open to allow you to do this. Be sure to save your changes before closing Wordpad."
+ Exec 'write "$R1"' ; spawn wordpad with the file to be edited
+ ${EndIf}
+ ${If} $OsIsNT = 1
+ ExecWait 'cmd.exe /C echo Y|cacls "$R1" /G SYSTEM:F Administrators:F'
+ ${EndIf}
+
+ StrCpy $0 bacula-sd
+ StrCpy $1 "Storage Service"
+ StrCpy $2 $OptionsStorageService
+ StrCpy $3 $OptionsStorageStart
+ Call InstallDaemon
+
+ CreateShortCut "$SMPROGRAMS\Bacula\Edit Storage Configuration.lnk" "write.exe" '"$APPDATA\Bacula\bacula-sd.conf"'
+SectionEnd
+
+Section "Director Service" SecDirectorDaemon
+ SectionIn 2 3
+
+ SetOutPath "$INSTDIR\bin"
+ File "bacula-dir.exe"
+ File "dbcheck.exe"
+ File ..\cats\create_mysql_database.cmd
+ File ..\cats\drop_mysql_database.cmd
+ File ..\cats\make_mysql_tables.cmd
+ File ..\cats\make_mysql_tables.sql
+ File ..\cats\drop_mysql_tables.cmd
+ File ..\cats\drop_mysql_tables.sql
+ File ..\cats\update_mysql_tables.cmd
+ File ..\cats\update_mysql_tables.sql
+ File ..\cats\grant_mysql_privileges.cmd
+ File ..\cats\grant_mysql_privileges.sql
+ File ..\cats\make_catalog_backup.cmd
+ File ..\cats\delete_catalog_backup.cmd
+
+ StrCpy $R0 0
+ StrCpy $R1 "$APPDATA\Bacula\bacula-dir.conf"
+ IfFileExists $R1 0 +3
+ StrCpy $R0 1
+ StrCpy $R1 "$R1.new"
+
+ File /oname=$R1 "..\..\dird\bacula-dir.conf.in"
+
+ ${If} $OptSilent <> 1
+ ${AndIf} $R0 <> 1
+ MessageBox MB_OK \
+ "Please edit the configuration file $R1 to fit your installation. When you click the OK button Wordpad will open to allow you to do this. Be sure to save your changes before closing Wordpad."
+ Exec 'write "$R1"' ; spawn wordpad with the file to be edited
+ ${EndIf}
+ ${If} $OsIsNT = 1
+ ExecWait 'cmd.exe /C echo Y|cacls "$R1" /G SYSTEM:F Administrators:F'
+ ${EndIf}
+
+ StrCpy $0 bacula-dir
+ StrCpy $1 "Director Service"
+ StrCpy $2 $OptionsDirectorService
+ StrCpy $3 $OptionsDirectorStart
+ Call InstallDaemon
+
+ CreateShortCut "$SMPROGRAMS\Bacula\Edit Director Configuration.lnk" "write.exe" '"$APPDATA\Bacula\bacula-dir.conf"'
+SectionEnd
+
+SectionGroupEnd
+
+SectionGroup "Consoles"
+
+Section "Command Console" SecConsole
+ SectionIn 3
+
+ File "bconsole.exe"
+ Call CopyDependencies
+
+ StrCpy $R0 0
+ StrCpy $R1 "$APPDATA\Bacula\bconsole.conf"
+ IfFileExists $R1 0 +3
+ StrCpy $R0 1
+ StrCpy $R1 "$R1.new"
+
+ File /oname=$R1 "..\..\console\bconsole.conf.in"
+
+ ${If} $OptSilent <> 1
+ ${AndIf} $R0 <> 1
+ MessageBox MB_OK \
+ "Please edit the configuration file $R1 to fit your installation. When you click the OK button Wordpad will open to allow you to do this. Be sure to save your changes before closing Wordpad."
+ Exec 'write "$R1"' ; spawn wordpad with the file to be edited
+ ${EndIf}
+ ${If} $OsIsNT = 1
+ ExecWait 'cmd.exe /C echo Y|cacls "$R1" /G SYSTEM:F Administrators:F'
+ ${EndIf}
+
+ CreateShortCut "$SMPROGRAMS\Bacula\Edit Command Console Configuration.lnk" "write.exe" '"$APPDATA\Bacula\bconsole.conf"'
+
+SectionEnd
+
+Section "Graphical Console" SecWxConsole
+ SectionIn 1 2 3
+
+ Call CopyDependencies
+ File "wxbase26_gcc_bacula.dll"
+ File "wxmsw26_core_gcc_bacula.dll"
+ File "wx-console.exe"
+
+ StrCpy $R0 0
+ StrCpy $R1 "$APPDATA\Bacula\wx-console.conf"
+ IfFileExists $R1 0 +3
+ StrCpy $R0 1
+ StrCpy $R1 "$R1.new"
+
+ File /oname=$R1 "..\..\wx-console\wx-console.conf.in"
+
+ ${If} $OptSilent <> 1
+ ${AndIf} $R0 <> 1
+ MessageBox MB_OK \
+ "Please edit the configuration file $R1 to fit your installation. When you click the OK button Wordpad will open to allow you to do this. Be sure to save your changes before closing Wordpad."
+ Exec 'write "$R1"' ; spawn wordpad with the file to be edited
+ ${EndIf}
+ ${If} $OsIsNT = 1
+ ExecWait 'cmd.exe /C echo Y|cacls "$R1" /G SYSTEM:F Administrators:F'
+ ${EndIf}
+
+ ; Create Start Menu entry
+ CreateShortCut "$SMPROGRAMS\Bacula\Console.lnk" "$INSTDIR\bin\wx-console.exe" '-c "$APPDATA\Bacula\wx-console.conf"' "$INSTDIR\bin\wx-console.exe" 0
+ CreateShortCut "$SMPROGRAMS\Bacula\Edit Graphical Console Configuration.lnk" "write.exe" '"$APPDATA\Bacula\wx-console.conf"'
+SectionEnd
+
+SectionGroupEnd
+
+SectionGroup "Documentation"
+
+Section "Documentation (Acrobat Format)" SecDocPdf
+ SectionIn 1 2 3
+
+ SetOutPath "$INSTDIR\doc"
+ CreateDirectory "$INSTDIR\doc"
+ File "${DOCDIR}\manual\bacula.pdf"
+ CreateShortCut "$SMPROGRAMS\Bacula\Manual.lnk" '"$INSTDIR\doc\bacula.pdf"'
+SectionEnd
+
+Section "Documentation (HTML Format)" SecDocHtml
+ SectionIn 3
+
+ SetOutPath "$INSTDIR\doc"
+ CreateDirectory "$INSTDIR\doc"
+ File "${DOCDIR}\manual\bacula\*.html"
+ File "${DOCDIR}\manual\bacula\*.png"
+ File "${DOCDIR}\manual\bacula\*.css"
+ CreateShortCut "$SMPROGRAMS\Bacula\Manual (HTML).lnk" '"$INSTDIR\doc\bacula.html"'
+SectionEnd
+
+SectionGroupEnd
+
+Section "-Write Installer"
+ ; Write the uninstall keys for Windows & create Start Menu entry
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "DisplayName" "Bacula"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "UninstallString" '"$INSTDIR\uninstall.exe"'
+ WriteUninstaller "$INSTDIR\Uninstall.exe"
+ CreateShortCut "$SMPROGRAMS\Bacula\Uninstall Bacula.lnk" "$INSTDIR\Uninstall.exe" "" "$INSTDIR\Uninstall.exe" 0
+SectionEnd
+
+;
+; Extra Page descriptions
+;
+
+ LangString DESC_SecFileDaemon ${LANG_ENGLISH} "Install Bacula File Daemon on this system."
+ LangString DESC_SecStorageDaemon ${LANG_ENGLISH} "Install Bacula Storage Daemon on this system."
+ LangString DESC_SecDirectorDaemon ${LANG_ENGLISH} "Install Bacula Director Daemon on this system."
+ LangString DESC_SecConsole ${LANG_ENGLISH} "Install command console program on this system."
+ LangString DESC_SecWxConsole ${LANG_ENGLISH} "Install graphical console program on this system."
+ LangString DESC_SecDocPdf ${LANG_ENGLISH} "Install documentation in Acrobat format on this system."
+ LangString DESC_SecDocHtml ${LANG_ENGLISH} "Install documentation in HTML format on this system."
+
+ LangString TITLE_ClientConfig ${LANG_ENGLISH} "Configure Client"
+ LangString SUBTITLE_ClientConfig ${LANG_ENGLISH} "Create initial configuration for Client."
+
+ LangString TITLE_Options ${LANG_ENGLISH} "Options"
+ LangString SUBTITLE_Options ${LANG_ENGLISH} "Set installation options."
+
+ !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
+ !insertmacro MUI_DESCRIPTION_TEXT ${SecFileDaemon} $(DESC_SecFileDaemon)
+ !insertmacro MUI_DESCRIPTION_TEXT ${SecStorageDaemon} $(DESC_SecStorageDaemon)
+ !insertmacro MUI_DESCRIPTION_TEXT ${SecDirectorDaemon} $(DESC_SecDirectorDaemon)
+ !insertmacro MUI_DESCRIPTION_TEXT ${SecConsole} $(DESC_SecConsole)
+ !insertmacro MUI_DESCRIPTION_TEXT ${SecWxConsole} $(DESC_SecWxConsole)
+ !insertmacro MUI_DESCRIPTION_TEXT ${SecDocPdf} $(DESC_SecDocPdf)
+ !insertmacro MUI_DESCRIPTION_TEXT ${SecDocHtml} $(DESC_SecDocHtml)
+ !insertmacro MUI_FUNCTION_DESCRIPTION_END
+
+; Uninstall section
+
+UninstallText "This will uninstall Bacula. Hit next to continue."
+
+Section "Uninstall"
+ ; Shutdown any baculum that could be running
+ ExecWait '"$INSTDIR\bin\bacula-fd.exe" /kill'
+ ExecWait '"$INSTDIR\bin\bacula-sd.exe" /kill'
+ ExecWait '"$INSTDIR\bin\bacula-dir.exe" /kill'
+
+ ReadRegDWORD $R0 HKLM "Software\Bacula" "Installed_Bacula-fd"
+ ${If} $R0 = 1
+ ; Remove bacula service
+ ExecWait '"$INSTDIR\bin\bacula-fd.exe" /remove'
+ ${EndIf}
+
+ ReadRegDWORD $R0 HKLM "Software\Bacula" "Installed_Bacula-sd"
+ ${If} $R0 = 1
+ ; Remove bacula service
+ ExecWait '"$INSTDIR\bin\bacula-sd.exe" /remove'
+ ${EndIf}
+
+ ReadRegDWORD $R0 HKLM "Software\Bacula" "Installed_Bacula-dir"
+ ${If} $R0 = 1
+ ; Remove bacula service
+ ExecWait '"$INSTDIR\bin\bacula-dir.exe" /remove'
+ ${EndIf}
+
+ ; remove registry keys
+ DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula"
+ DeleteRegKey HKLM "Software\Bacula"
+
+ ; remove start menu items
+ SetShellVarContext all
+ Delete /REBOOTOK "$SMPROGRAMS\Bacula\*"
+ RMDir "$SMPROGRAMS\Bacula"
+
+ ; remove files and uninstaller (preserving config for now)
+ Delete /REBOOTOK "$INSTDIR\bin\*.*"
+ Delete /REBOOTOK "$INSTDIR\doc\*.*"
+ Delete /REBOOTOK "$INSTDIR\Uninstall.exe"
+
+ ; Check for existing installation
+ MessageBox MB_YESNO|MB_ICONQUESTION \
+ "Would you like to delete the current configuration files and the working state file?" IDNO +3
+ Delete /REBOOTOK "$APPDATA\Bacula\*"
+ RMDir "$APPDATA\Bacula"
+
+ ; remove directories used
+ RMDir "$INSTDIR\bin"
+ RMDir "$INSTDIR\doc"
+ RMDir "$INSTDIR"
+SectionEnd
+
+Function EnterClientConfig
+ SectionGetFlags ${SecFileDaemon} $R0
+ IntOp $R0 $R0 & 1
+
+ SectionGetFlags ${SecStorageDaemon} $R1
+ IntOp $R1 $R1 & 1
+
+ SectionGetFlags ${SecDirectorDaemon} $R2
+ IntOp $R2 $R2 & 1
+
+ ${If} $R0 = 0
+ ${OrIf} $R1 = 1
+ ${OrIf} $R2 = 1
+ Abort
+ ${EndIf}
+
+ !insertmacro MUI_HEADER_TEXT "$(TITLE_ClientConfig)" "$(SUBTITLE_ClientConfig)"
+ !insertmacro MUI_INSTALLOPTIONS_INITDIALOG "ClientConfig.ini"
+ Pop $HDLG ;HWND of dialog
+
+ ; Initialize Controls
+ ; Client Name
+ !insertmacro MUI_INSTALLOPTIONS_READ $HCTL "ClientConfig.ini" "Field 3" "HWND"
+ SendMessage $HCTL ${EM_LIMITTEXT} 30 0
+
+ ; Client Port Number
+ !insertmacro MUI_INSTALLOPTIONS_READ $HCTL "ClientConfig.ini" "Field 6" "HWND"
+ SendMessage $HCTL ${EM_LIMITTEXT} 5 0
+ SendMessage $HCTL ${WM_SETTEXT} 0 "STR:9102"
+
+ ; Max Jobs
+ !insertmacro MUI_INSTALLOPTIONS_READ $HCTL "ClientConfig.ini" "Field 8" "HWND"
+ SendMessage $HCTL ${EM_LIMITTEXT} 2 0
+ SendMessage $HCTL ${WM_SETTEXT} 0 "STR:20"
+
+ ; Director Name
+ !insertmacro MUI_INSTALLOPTIONS_READ $HCTL "ClientConfig.ini" "Field 11" "HWND"
+ SendMessage $HCTL ${EM_LIMITTEXT} 30 0
+
+ ; Director Password
+ !insertmacro MUI_INSTALLOPTIONS_READ $HCTL "ClientConfig.ini" "Field 14" "HWND"
+ SendMessage $HCTL ${EM_LIMITTEXT} 60 0
+
+ ; Monitor Name
+ !insertmacro MUI_INSTALLOPTIONS_READ $HCTL "ClientConfig.ini" "Field 17" "HWND"
+ SendMessage $HCTL ${EM_LIMITTEXT} 30 0
+
+ ; Monitor Password
+ !insertmacro MUI_INSTALLOPTIONS_READ $HCTL "ClientConfig.ini" "Field 20" "HWND"
+ SendMessage $HCTL ${EM_LIMITTEXT} 60 0
+
+ !insertmacro MUI_INSTALLOPTIONS_SHOW
+
+ ;
+ ; Process results
+ ;
+ ; Client Name
+ !insertmacro MUI_INSTALLOPTIONS_READ $ConfigClientName "ClientConfig.ini" "Field 3" "State"
+ ; Client Port Number
+ !insertmacro MUI_INSTALLOPTIONS_READ $ConfigClientPort "ClientConfig.ini" "Field 6" "State"
+ ; Max Jobs
+ !insertmacro MUI_INSTALLOPTIONS_READ $ConfigMaxJobs "ClientConfig.ini" "Field 8" "State"
+
+ ; Director Name
+ !insertmacro MUI_INSTALLOPTIONS_READ $ConfigDirectorName "ClientConfig.ini" "Field 11" "State"
+ ; Director Password
+ !insertmacro MUI_INSTALLOPTIONS_READ $ConfigDirectorPW "ClientConfig.ini" "Field 14" "State"
+
+ ; Monitor Name
+ !insertmacro MUI_INSTALLOPTIONS_READ $ConfigMonitorName "ClientConfig.ini" "Field 17" "State"
+ ; Monitor Password
+ !insertmacro MUI_INSTALLOPTIONS_READ $ConfigMonitorPW "ClientConfig.ini" "Field 20" "State"
+FunctionEnd
+
+Function LeaveClientConfig
+ ; Client Port Number
+ !insertmacro MUI_INSTALLOPTIONS_READ $R0 "ClientConfig.ini" "Field 6" "State"
+ ${If} $R0 < 1024
+ ${OrIf} $R0 > 65535
+ MessageBox MB_OK "Port must be between 1024 and 65535 inclusive."
+ Abort
+ ${EndIf}
+
+ ; Max Jobs
+ !insertmacro MUI_INSTALLOPTIONS_READ $R0 "ClientConfig.ini" "Field 8" "State"
+ ${If} $R0 < 1
+ ${OrIf} $R0 > 99
+ MessageBox MB_OK "Max Jobs must be between 1 and 99 inclusive."
+ Abort
+ ${EndIf}
+FunctionEnd
+
+Function EnterOptions
+ SectionGetFlags ${SecFileDaemon} $R0
+ IntOp $R0 $R0 & 1
+
+ SectionGetFlags ${SecStorageDaemon} $R1
+ IntOp $R1 $R1 & 1
+
+ SectionGetFlags ${SecDirectorDaemon} $R2
+ IntOp $R2 $R2 & 1
+
+ ${If} $R0 = 0
+ ${AndIf} $R1 = 0
+ ${AndIf} $R2 = 0
+ Abort
+ ${EndIf}
+
+ FileOpen $R3 "$PLUGINSDIR\options.ini" w
+
+ StrCpy $R4 1 ; Field Number
+ StrCpy $R5 0 ; Top
+
+ ${If} $R0 = 1
+ IntOp $R6 $R5 + 34
+
+ FileWrite $R3 '[Field $R4]$\r$\n'
+ FileWrite $R3 'Type="GroupBox"$\r$\nText="Client"$\r$\nLeft=0$\r$\nTop=$R5$\r$\nRight=300$\r$\nBottom=$R6$\r$\n'
+
+ IntOp $R4 $R4 + 1
+ IntOp $R5 $R5 + 8
+ IntOp $R6 $R5 + 12
+
+ FileWrite $R3 '[Field $R4]$\r$\nType="Checkbox"$\r$\nState=$OptService$\r$\nText="Install as service"$\r$\nLeft=6$\r$\nTop=$R5$\r$\nRight=280$\r$\nBottom=$R6$\r$\n'
+
+ IntOp $R4 $R4 + 1
+ StrCpy $R5 $R6
+ IntOp $R6 $R5 + 12
+
+ FileWrite $R3 '[Field $R4]$\r$\nType="Checkbox"$\r$\nState=$OptStart$\r$\nText="Start after install"$\r$\nLeft=6$\r$\nTop=$R5$\r$\nRight=280$\r$\nBottom=$R6$\r$\n'
+
+ IntOp $R4 $R4 + 1
+ IntOp $R5 $R6 + 8
+ ${Endif}
+
+ ${If} $R1 = 1
+ IntOp $R6 $R5 + 34
+
+ FileWrite $R3 '[Field $R4]$\r$\n'
+ FileWrite $R3 'Type="GroupBox"$\r$\nText="Storage"$\r$\nLeft=0$\r$\nTop=$R5$\r$\nRight=300$\r$\nBottom=$R6$\r$\n'
+
+ IntOp $R4 $R4 + 1
+ IntOp $R5 $R5 + 8
+ IntOp $R6 $R5 + 12
+
+ FileWrite $R3 '[Field $R4]$\r$\nType="Checkbox"$\r$\nState=$OptService$\r$\nText="Install as service"$\r$\nLeft=6$\r$\nTop=$R5$\r$\nRight=280$\r$\nBottom=$R6$\r$\n'
+
+ IntOp $R4 $R4 + 1
+ StrCpy $R5 $R6
+ IntOp $R6 $R5 + 12
+
+ FileWrite $R3 '[Field $R4]$\r$\nType="Checkbox"$\r$\nState=$OptStart$\r$\nText="Start after install"$\r$\nLeft=6$\r$\nTop=$R5$\r$\nRight=280$\r$\nBottom=$R6$\r$\n'
+
+ IntOp $R4 $R4 + 1
+ IntOp $R5 $R6 + 8
+ ${Endif}
+
+ ${If} $R2 = 1
+ IntOp $R6 $R5 + 46
+
+ FileWrite $R3 '[Field $R4]$\r$\n'
+ FileWrite $R3 'Type="GroupBox"$\r$\nText="Director"$\r$\nLeft=0$\r$\nTop=$R5$\r$\nRight=300$\r$\nBottom=$R6$\r$\n'
+
+ IntOp $R4 $R4 + 1
+ IntOp $R5 $R5 + 8
+ IntOp $R6 $R5 + 12
+
+ FileWrite $R3 '[Field $R4]$\r$\nType="Checkbox"$\r$\nState=$OptService$\r$\nText="Install as service"$\r$\nLeft=6$\r$\nTop=$R5$\r$\nRight=280$\r$\nBottom=$R6$\r$\n'
+
+ IntOp $R4 $R4 + 1
+ StrCpy $R5 $R6
+ IntOp $R6 $R5 + 12
+
+ FileWrite $R3 '[Field $R4]$\r$\nType="Checkbox"$\r$\nState=$OptStart$\r$\nText="Start after install"$\r$\nLeft=6$\r$\nTop=$R5$\r$\nRight=280$\r$\nBottom=$R6$\r$\n'
+
+ IntOp $R4 $R4 + 1
+ IntOp $R5 $R6 + 2
+ IntOp $R6 $R5 + 8
+
+ FileWrite $R3 '[Field $R4]$\r$\nType="Label"$\r$\nText="Database:"$\r$\nLeft=6$\r$\nTop=$R5$\r$\nRight=46$\r$\nBottom=$R6$\r$\n'
+
+ IntOp $R4 $R4 + 1
+ IntOp $R5 $R5 - 2
+ IntOp $R6 $R5 + 12
+
+ FileWrite $R3 '[Field $R4]$\r$\nType="RadioButton"$\r$\nState=1$\r$\nText="MySQL"$\r$\nFlags="GROUP"$\r$\nLeft=46$\r$\nTop=$R5$\r$\nRight=86$\r$\nBottom=$R6$\r$\n'
+
+ IntOp $R4 $R4 + 1
+ IntOp $R6 $R5 + 12
+
+ FileWrite $R3 '[Field $R4]$\r$\nType="RadioButton"$\r$\nState=0$\r$\nText="PostgreSQL"$\r$\nFlags="NOTABSTOP"$\r$\nLeft=86$\r$\nTop=$R5$\r$\nRight=142$\r$\nBottom=$R6$\r$\n'
+
+ IntOp $R4 $R4 + 1
+ IntOp $R6 $R5 + 12
+
+ FileWrite $R3 '[Field $R4]$\r$\nType="RadioButton"$\r$\nState=0$\r$\nText="Builtin"$\r$\nFlags="NOTABSTOP"$\r$\nLeft=142$\r$\nTop=$R5$\r$\nRight=182$\r$\nBottom=$R6$\r$\n'
+
+ IntOp $R4 $R4 + 1
+ IntOp $R5 $R6 + 8
+ ${Endif}
+
+ IntOp $R4 $R4 - 1
+
+ FileWrite $R3 "[Settings]$\r$\nNumFields=$R4$\r$\n"
+
+ FileClose $R3
+
+ !insertmacro MUI_HEADER_TEXT "$(TITLE_Options)" "$(SUBTITLE_Options)"
+ !insertmacro MUI_INSTALLOPTIONS_DISPLAY "Options.ini"
+
+ ;
+ ; Process results
+ ;
+ StrCpy $R4 2
+
+ ${If} $R0 = 1
+ ; Client
+ !insertmacro MUI_INSTALLOPTIONS_READ $OptionsClientService "Options.ini" "Field $R4" "State"
+ IntOp $R4 $R4 + 1
+ !insertmacro MUI_INSTALLOPTIONS_READ $OptionsClientStart "Options.ini" "Field $R4" "State"
+ IntOp $R4 $R4 + 2
+ ${EndIf}
+
+ ${If} $R0 = 1
+ ; Client
+ !insertmacro MUI_INSTALLOPTIONS_READ $OptionsStorageService "Options.ini" "Field $R4" "State"
+ IntOp $R4 $R4 + 1
+ !insertmacro MUI_INSTALLOPTIONS_READ $OptionsStorageStart "Options.ini" "Field $R4" "State"
+ IntOp $R4 $R4 + 2
+ ${EndIf}
+
+ ${If} $R0 = 1
+ ; Client
+ !insertmacro MUI_INSTALLOPTIONS_READ $OptionsDirectorService "Options.ini" "Field $R4" "State"
+ IntOp $R4 $R4 + 1
+ !insertmacro MUI_INSTALLOPTIONS_READ $OptionsDirectorStart "Options.ini" "Field $R4" "State"
+ IntOp $R4 $R4 + 2
+ !insertmacro MUI_INSTALLOPTIONS_READ $R3 "Options.ini" "Field $R4" "State"
+ ${If} $R3 = 1
+ StrCpy $OptionsDirectorDB 1
+ ${Else}
+ IntOp $R4 $R4 + 1
+ !insertmacro MUI_INSTALLOPTIONS_READ $R3 "Options.ini" "Field $R4" "State"
+ ${If} $R3 = 1
+ StrCpy $OptionsDirectorDB 2
+ ${Else}
+ StrCpy $OptionsDirectorDB 3
+ ${Endif}
+ ${Endif}
+ ${EndIf}
+FunctionEnd
+
+;
+; $0 - Service Name (ie Bacula-FD)
+; $1 - Service Description (ie Bacula File Daemon)
+; $2 - Install as Service
+; $3 - Start Service now
+;
+Function InstallDaemon
+ Call CopyDependencies
+
+ IfFileExists "$APPDATA\Bacula\$0.conf" 0 +3
+ ExecWait '"$INSTDIR\bin\$0.exe" /kill' ; Shutdown any bacula that could be running
+ Sleep 3000 ; give it some time to shutdown
+
+ WriteRegDWORD HKLM "Software\Bacula" "Service_$0" $2
+
+ ${If} $2 = 1
+ ExecWait '"$INSTDIR\bin\$0.exe" /install'
+
+ ${If} $OsIsNT <> 1
+ File "Start.bat"
+ File "Stop.bat"
+ ${EndIf}
+
+ ; Start the service? (default skipped if silent, use /start to force starting)
+
+ ${If} $3 = 1
+ ${If} $OsIsNT = 1
+ Exec 'net start bacula'
+ Sleep 3000
+ ${Else}
+ Exec '"$INSTDIR\bin\$0.exe" -c "$APPDATA\Bacula\$0.conf"'
+ ${EndIf}
+ ${EndIf}
+ ${Else}
+ CreateShortCut "$SMPROGRAMS\Bacula\Start $1.lnk" "$INSTDIR\bin\$0.exe" '-c "$APPDATA\Bacula\$0.conf"' "$INSTDIR\bin\$0.exe" 0
+ ${EndIf}
+FunctionEnd
Index: SCons/Config/gnu
---- ../nsis-2.17-src-rel/SCons/Config/gnu 2006-04-28 08:54:41.000000000 -0700
-+++ ./SCons/Config/gnu 2006-06-19 23:12:11.000000000 -0700
+--- ../release/nsis-2.17-src/SCons/Config/gnu 2006-04-28 08:54:41.000000000 -0700
++++ ./SCons/Config/gnu 2006-07-31 05:48:44.000000000 -0700
@@ -65,7 +65,7 @@
- cross_env(stub_env)\r
- \r
- if not defenv['DEBUG']:\r
-- stub_env.Append(CCFLAGS = '-Os') # optimize for size\r
-+ stub_env.Append(CCFLAGS = '-Os -fno-strict-aliasing') # optimize for size\r
- stub_env.Append(CCFLAGS = '-Wall') # all warnings\r
- stub_env.Append(CCFLAGS = '-x c') # force compile as c\r
- \r
+ cross_env(stub_env)
+
+ if not defenv['DEBUG']:
+- stub_env.Append(CCFLAGS = '-Os') # optimize for size
++ stub_env.Append(CCFLAGS = '-Os -fno-strict-aliasing') # optimize for size
+ stub_env.Append(CCFLAGS = '-Wall') # all warnings
+ stub_env.Append(CCFLAGS = '-x c') # force compile as c
+
@@ -82,7 +82,7 @@
- makensis_env = defenv.Copy()\r
- \r
- if not defenv['DEBUG']:\r
-- makensis_env.Append(CCFLAGS = '-O2') # optimize\r
-+ makensis_env.Append(CCFLAGS = '-O2 -fno-strict-aliasing') # optimize\r
- makensis_env.Append(CCFLAGS = '-Wall') # all warnings\r
- \r
- conf = FlagsConfigure(makensis_env)\r
+ makensis_env = defenv.Copy()
+
+ if not defenv['DEBUG']:
+- makensis_env.Append(CCFLAGS = '-O2') # optimize
++ makensis_env.Append(CCFLAGS = '-O2 -fno-strict-aliasing') # optimize
+ makensis_env.Append(CCFLAGS = '-Wall') # all warnings
+
+ conf = FlagsConfigure(makensis_env)
@@ -97,7 +97,7 @@
- cross_env(plugin_env)\r
- \r
- if not defenv['DEBUG']:\r
-- plugin_env.Append(CCFLAGS = '-Os') # optimize for size\r
-+ plugin_env.Append(CCFLAGS = '-Os -fno-strict-aliasing') # optimize for size\r
- plugin_env.Append(CCFLAGS = '-Wall') # level 3 warnings\r
- \r
- if not defenv['DEBUG']:\r
+ cross_env(plugin_env)
+
+ if not defenv['DEBUG']:
+- plugin_env.Append(CCFLAGS = '-Os') # optimize for size
++ plugin_env.Append(CCFLAGS = '-Os -fno-strict-aliasing') # optimize for size
+ plugin_env.Append(CCFLAGS = '-Wall') # level 3 warnings
+
+ if not defenv['DEBUG']:
@@ -111,7 +111,7 @@
- cp_util_env = defenv.Copy()\r
- \r
- if not defenv['DEBUG']:\r
-- cp_util_env.Append(CCFLAGS = '-O2') # optimize\r
-+ cp_util_env.Append(CCFLAGS = '-O2 -fno-strict-aliasing') # optimize\r
- cp_util_env.Append(CCFLAGS = '-Wall') # all warnings\r
- \r
- conf = FlagsConfigure(cp_util_env)\r
+ cp_util_env = defenv.Copy()
+
+ if not defenv['DEBUG']:
+- cp_util_env.Append(CCFLAGS = '-O2') # optimize
++ cp_util_env.Append(CCFLAGS = '-O2 -fno-strict-aliasing') # optimize
+ cp_util_env.Append(CCFLAGS = '-Wall') # all warnings
+
+ conf = FlagsConfigure(cp_util_env)
+Index: Source/build.cpp
+--- ../release/nsis-2.17-src/Source/build.cpp 2006-04-14 03:05:01.000000000 -0700
++++ ./Source/build.cpp 2006-07-31 13:26:38.000000000 -0700
+@@ -2384,7 +2384,7 @@
+ return PS_ERROR;
+ }
+ #ifdef NSIS_CONFIG_CRC_SUPPORT
+- crc_writer_sink crc_sink((unsigned long *) &crc);
++ crc_writer_sink crc_sink((unsigned int *) &crc);
+ firstheader_writer w(&crc_sink);
+ w.write(&fh);
+
+Index: Source/build.h
+--- ../release/nsis-2.17-src/Source/build.h 2005-04-02 04:04:06.000000000 -0800
++++ ./Source/build.h 2006-07-31 13:28:44.000000000 -0700
+@@ -38,7 +38,7 @@
+ #ifdef NSIS_CONFIG_CRC_SUPPORT
+ extern "C"
+ {
+- unsigned long NSISCALL CRC32(unsigned long crc, const unsigned char *buf, unsigned int len);
++ unsigned int NSISCALL CRC32(unsigned int crc, const unsigned char *buf, unsigned int len);
+ };
+ #endif
+
+Index: Source/crc32.c
+--- ../release/nsis-2.17-src/Source/crc32.c 2004-03-12 12:43:54.000000000 -0800
++++ ./Source/crc32.c 2006-07-31 13:27:12.000000000 -0700
+@@ -3,18 +3,18 @@
+ #ifdef NSIS_CONFIG_CRC_SUPPORT
+
+ // this is based on the (slow,small) CRC32 implementation from zlib.
+-unsigned long NSISCALL CRC32(unsigned long crc, const unsigned char *buf, unsigned int len)
++unsigned int NSISCALL CRC32(unsigned int crc, const unsigned char *buf, unsigned int len)
+ {
+- static unsigned long crc_table[256];
++ static unsigned int crc_table[256];
+
+ if (!crc_table[1])
+ {
+- unsigned long c;
++ unsigned int c;
+ int n, k;
+
+ for (n = 0; n < 256; n++)
+ {
+- c = (unsigned long)n;
++ c = (unsigned int)n;
+ for (k = 0; k < 8; k++) c = (c >> 1) ^ (c & 1 ? 0xedb88320L : 0);
+ crc_table[n] = c;
+ }
Index: Source/DialogTemplate.cpp
---- ../nsis-2.17-src-rel/Source/DialogTemplate.cpp 2006-03-24 10:36:24.000000000 -0800
-+++ ./Source/DialogTemplate.cpp 2006-06-20 00:04:01.000000000 -0700
+--- ../release/nsis-2.17-src/Source/DialogTemplate.cpp 2006-03-24 10:36:24.000000000 -0800
++++ ./Source/DialogTemplate.cpp 2006-07-31 05:48:44.000000000 -0700
@@ -93,7 +93,7 @@
- if (IS_INTRESOURCE(x)) { \\r
- *(WORD*)seeker = 0xFFFF; \\r
- seeker += sizeof(WORD); \\r
-- *(WORD*)seeker = ConvertEndianness(WORD(DWORD(x))); \\r
-+ *(WORD*)seeker = ConvertEndianness(WORD(ULONG_PTR(x))); \\r
- seeker += sizeof(WORD); \\r
- } \\r
- else { \\r
+ if (IS_INTRESOURCE(x)) { \
+ *(WORD*)seeker = 0xFFFF; \
+ seeker += sizeof(WORD); \
+- *(WORD*)seeker = ConvertEndianness(WORD(DWORD(x))); \
++ *(WORD*)seeker = ConvertEndianness(WORD(ULONG_PTR(x))); \
+ seeker += sizeof(WORD); \
+ } \
+ else { \
@@ -629,7 +629,7 @@
- }\r
- }\r
- \r
-- assert((DWORD) seeker - (DWORD) pbDlg == dwSize);\r
-+ assert((ULONG_PTR) seeker - (ULONG_PTR) pbDlg == dwSize);\r
- \r
- // DONE!\r
- return pbDlg;\r
+ }
+ }
+
+- assert((DWORD) seeker - (DWORD) pbDlg == dwSize);
++ assert((ULONG_PTR) seeker - (ULONG_PTR) pbDlg == dwSize);
+
+ // DONE!
+ return pbDlg;
+Index: Source/exehead/fileform.c
+--- ../release/nsis-2.17-src/Source/exehead/fileform.c 2005-09-09 09:08:44.000000000 -0700
++++ ./Source/exehead/fileform.c 2006-07-31 13:26:08.000000000 -0700
+@@ -95,7 +95,7 @@
+ static z_stream g_inflate_stream;
+ #endif
+
+-extern unsigned long NSISCALL CRC32(unsigned long crc, const unsigned char *buf, unsigned int len);
++extern unsigned int NSISCALL CRC32(unsigned int crc, const unsigned char *buf, unsigned int len);
+
+ const char * NSISCALL loadHeaders(int cl_flags)
+ {
Index: Source/Platform.h
---- ../nsis-2.17-src-rel/Source/Platform.h 2006-05-03 08:43:54.000000000 -0700
-+++ ./Source/Platform.h 2006-06-20 00:14:31.000000000 -0700
+--- ../release/nsis-2.17-src/Source/Platform.h 2006-05-03 08:43:54.000000000 -0700
++++ ./Source/Platform.h 2006-07-31 05:48:44.000000000 -0700
@@ -16,15 +16,15 @@
- // basic types\r
- typedef unsigned char BYTE, *PBYTE, *LPBYTE;\r
- typedef unsigned short WORD, *LPWORD;\r
--typedef unsigned long DWORD, *LPDWORD;\r
-+typedef unsigned int DWORD, *LPDWORD;\r
- typedef short SHORT;\r
- typedef unsigned short USHORT;\r
- typedef unsigned int UINT;\r
- typedef unsigned int UINT32;\r
- typedef int INT;\r
- typedef int INT32;\r
--typedef long LONG;\r
--typedef unsigned long ULONG;\r
-+typedef int LONG;\r
-+typedef unsigned int ULONG;\r
- typedef long long INT64, LARGE_INTEGER;\r
- typedef unsigned long long UINT64, ULARGE_INTEGER;\r
- typedef int BOOL, *LPBOOL;\r
+ // basic types
+ typedef unsigned char BYTE, *PBYTE, *LPBYTE;
+ typedef unsigned short WORD, *LPWORD;
+-typedef unsigned long DWORD, *LPDWORD;
++typedef unsigned int DWORD, *LPDWORD;
+ typedef short SHORT;
+ typedef unsigned short USHORT;
+ typedef unsigned int UINT;
+ typedef unsigned int UINT32;
+ typedef int INT;
+ typedef int INT32;
+-typedef long LONG;
+-typedef unsigned long ULONG;
++typedef int LONG;
++typedef unsigned int ULONG;
+ typedef long long INT64, LARGE_INTEGER;
+ typedef unsigned long long UINT64, ULARGE_INTEGER;
+ typedef int BOOL, *LPBOOL;
@@ -35,13 +35,14 @@
- typedef const char *LPCCH, *PCSTR, *LPCSTR;\r
- typedef unsigned short WCHAR, *PWCHAR, *LPWCH, *PWCH, *NWPSTR, *LPWSTR, *PWSTR;\r
- typedef const unsigned short *LPCWCH, *PCWCH, *LPCWSTR, *PCWSTR;\r
--typedef unsigned int UINT_PTR;\r
-+typedef unsigned long UINT_PTR;\r
-+typedef unsigned long ULONG_PTR;\r
- // basic stuff\r
- typedef void * HANDLE;\r
--typedef unsigned long HKEY;\r
-+typedef unsigned int HKEY;\r
- // some gdi\r
--typedef unsigned long COLORREF;\r
--typedef unsigned long HBRUSH;\r
-+typedef unsigned int COLORREF;\r
-+typedef unsigned int HBRUSH;\r
- // bool\r
- # define FALSE 0\r
- # define TRUE 1\r
+ typedef const char *LPCCH, *PCSTR, *LPCSTR;
+ typedef unsigned short WCHAR, *PWCHAR, *LPWCH, *PWCH, *NWPSTR, *LPWSTR, *PWSTR;
+ typedef const unsigned short *LPCWCH, *PCWCH, *LPCWSTR, *PCWSTR;
+-typedef unsigned int UINT_PTR;
++typedef unsigned long UINT_PTR;
++typedef unsigned long ULONG_PTR;
+ // basic stuff
+ typedef void * HANDLE;
+-typedef unsigned long HKEY;
++typedef unsigned int HKEY;
+ // some gdi
+-typedef unsigned long COLORREF;
+-typedef unsigned long HBRUSH;
++typedef unsigned int COLORREF;
++typedef unsigned int HBRUSH;
+ // bool
+ # define FALSE 0
+ # define TRUE 1
@@ -129,13 +130,13 @@
- \r
- #ifndef _WIN32\r
- # ifndef FIELD_OFFSET\r
--# define FIELD_OFFSET(t,f) ((LONG)&(((t*)0)->f))\r
-+# define FIELD_OFFSET(t,f) ((ULONG_PTR)&(((t*)0)->f))\r
- # endif\r
- # ifndef MAKEINTRESOURCE\r
- # define MAKEINTRESOURCE(i) (LPSTR)((DWORD)((WORD)(i)))\r
- # endif\r
- # ifndef IMAGE_FIRST_SECTION\r
--# define IMAGE_FIRST_SECTION(h) ( PIMAGE_SECTION_HEADER( (DWORD) h + \\r
-+# define IMAGE_FIRST_SECTION(h) ( PIMAGE_SECTION_HEADER( (ULONG_PTR) h + \\r
- FIELD_OFFSET(IMAGE_NT_HEADERS, OptionalHeader) + \\r
- FIX_ENDIAN_INT16(PIMAGE_NT_HEADERS(h)->FileHeader.SizeOfOptionalHeader) ) )\r
- # endif\r
+
+ #ifndef _WIN32
+ # ifndef FIELD_OFFSET
+-# define FIELD_OFFSET(t,f) ((LONG)&(((t*)0)->f))
++# define FIELD_OFFSET(t,f) ((ULONG_PTR)&(((t*)0)->f))
+ # endif
+ # ifndef MAKEINTRESOURCE
+ # define MAKEINTRESOURCE(i) (LPSTR)((DWORD)((WORD)(i)))
+ # endif
+ # ifndef IMAGE_FIRST_SECTION
+-# define IMAGE_FIRST_SECTION(h) ( PIMAGE_SECTION_HEADER( (DWORD) h + \
++# define IMAGE_FIRST_SECTION(h) ( PIMAGE_SECTION_HEADER( (ULONG_PTR) h + \
+ FIELD_OFFSET(IMAGE_NT_HEADERS, OptionalHeader) + \
+ FIX_ENDIAN_INT16(PIMAGE_NT_HEADERS(h)->FileHeader.SizeOfOptionalHeader) ) )
+ # endif
@@ -166,9 +167,9 @@
- # define FOF_NOERRORUI 0x0400\r
- #endif\r
- \r
--#ifndef ULONG_PTR\r
--# define ULONG_PTR DWORD\r
--#endif\r
-+//#ifndef ULONG_PTR\r
-+//# define ULONG_PTR ULONG\r
-+//#endif\r
- \r
- #ifndef IDC_HAND\r
- # define IDC_HAND MAKEINTRESOURCE(32649)\r
+ # define FOF_NOERRORUI 0x0400
+ #endif
+
+-#ifndef ULONG_PTR
+-# define ULONG_PTR DWORD
+-#endif
++//#ifndef ULONG_PTR
++//# define ULONG_PTR ULONG
++//#endif
+
+ #ifndef IDC_HAND
+ # define IDC_HAND MAKEINTRESOURCE(32649)
+Index: Source/Plugins.cpp
+--- ../release/nsis-2.17-src/Source/Plugins.cpp 2006-04-05 11:42:12.000000000 -0700
++++ ./Source/Plugins.cpp 2006-07-31 06:50:08.000000000 -0700
+@@ -120,8 +120,8 @@
+ DWORD prd = FIX_ENDIAN_INT32(sections[i].PointerToRawData);
+ PIMAGE_EXPORT_DIRECTORY exports = PIMAGE_EXPORT_DIRECTORY(&dlldata[0] + prd + ExportDirVA - va);
+ DWORD na = FIX_ENDIAN_INT32(exports->AddressOfNames);
+- unsigned long *names = (unsigned long*)((unsigned long) exports + (char *) na - ExportDirVA);
+- for (unsigned long j = 0; j < FIX_ENDIAN_INT32(exports->NumberOfNames); j++)
++ unsigned int *names = (unsigned int*)((unsigned long) exports + (char *) na - ExportDirVA);
++ for (unsigned int j = 0; j < FIX_ENDIAN_INT32(exports->NumberOfNames); j++)
+ {
+ const string name = string((char*)exports + FIX_ENDIAN_INT32(names[j]) - ExportDirVA);
+ const string signature = dllName + "::" + name;
Index: Source/ResourceEditor.cpp
---- ../nsis-2.17-src-rel/Source/ResourceEditor.cpp 2006-04-05 11:40:09.000000000 -0700
-+++ ./Source/ResourceEditor.cpp 2006-06-20 00:26:25.000000000 -0700
+--- ../release/nsis-2.17-src/Source/ResourceEditor.cpp 2006-04-05 11:40:09.000000000 -0700
++++ ./Source/ResourceEditor.cpp 2006-07-31 05:48:44.000000000 -0700
@@ -545,7 +545,7 @@
- rdDir.NumberOfIdEntries = ConvertEndianness(rdDir.NumberOfIdEntries);\r
- \r
- CopyMemory(seeker, &rdDir, sizeof(IMAGE_RESOURCE_DIRECTORY));\r
-- crd->m_dwWrittenAt = DWORD(seeker);\r
-+ crd->m_dwWrittenAt = ULONG_PTR(seeker);\r
- seeker += sizeof(IMAGE_RESOURCE_DIRECTORY);\r
- \r
- for (int i = 0; i < crd->CountEntries(); i++) {\r
+ rdDir.NumberOfIdEntries = ConvertEndianness(rdDir.NumberOfIdEntries);
+
+ CopyMemory(seeker, &rdDir, sizeof(IMAGE_RESOURCE_DIRECTORY));
+- crd->m_dwWrittenAt = DWORD(seeker);
++ crd->m_dwWrittenAt = ULONG_PTR(seeker);
+ seeker += sizeof(IMAGE_RESOURCE_DIRECTORY);
+
+ for (int i = 0; i < crd->CountEntries(); i++) {
@@ -566,7 +566,7 @@
- rDirE.NameString.NameIsString = (crd->GetEntry(i)->HasName()) ? 1 : 0;\r
- \r
- CopyMemory(seeker, &rDirE, sizeof(MY_IMAGE_RESOURCE_DIRECTORY_ENTRY));\r
-- crd->GetEntry(i)->m_dwWrittenAt = DWORD(seeker);\r
-+ crd->GetEntry(i)->m_dwWrittenAt = ULONG_PTR(seeker);\r
- seeker += sizeof(MY_IMAGE_RESOURCE_DIRECTORY_ENTRY);\r
- }\r
- qDirs.pop();\r
+ rDirE.NameString.NameIsString = (crd->GetEntry(i)->HasName()) ? 1 : 0;
+
+ CopyMemory(seeker, &rDirE, sizeof(MY_IMAGE_RESOURCE_DIRECTORY_ENTRY));
+- crd->GetEntry(i)->m_dwWrittenAt = DWORD(seeker);
++ crd->GetEntry(i)->m_dwWrittenAt = ULONG_PTR(seeker);
+ seeker += sizeof(MY_IMAGE_RESOURCE_DIRECTORY_ENTRY);
+ }
+ qDirs.pop();
@@ -582,7 +582,7 @@
- rDataE.Size = ConvertEndianness(cRDataE->GetSize());\r
- \r
- CopyMemory(seeker, &rDataE, sizeof(IMAGE_RESOURCE_DATA_ENTRY));\r
-- cRDataE->m_dwWrittenAt = DWORD(seeker);\r
-+ cRDataE->m_dwWrittenAt = ULONG_PTR(seeker);\r
- seeker += sizeof(IMAGE_RESOURCE_DATA_ENTRY);\r
- \r
- qDataEntries.pop();\r
+ rDataE.Size = ConvertEndianness(cRDataE->GetSize());
+
+ CopyMemory(seeker, &rDataE, sizeof(IMAGE_RESOURCE_DATA_ENTRY));
+- cRDataE->m_dwWrittenAt = DWORD(seeker);
++ cRDataE->m_dwWrittenAt = ULONG_PTR(seeker);
+ seeker += sizeof(IMAGE_RESOURCE_DATA_ENTRY);
+
+ qDataEntries.pop();
@@ -594,7 +594,7 @@
- while (!qStrings.empty()) {\r
- CResourceDirectoryEntry* cRDirE = qStrings.front();\r
- \r
-- PMY_IMAGE_RESOURCE_DIRECTORY_ENTRY(cRDirE->m_dwWrittenAt)->NameString.NameOffset = ConvertEndianness(DWORD(seeker) - DWORD(pbRsrcSec));\r
-+ PMY_IMAGE_RESOURCE_DIRECTORY_ENTRY(cRDirE->m_dwWrittenAt)->NameString.NameOffset = ConvertEndianness(DWORD(ULONG_PTR(seeker) - ULONG_PTR(pbRsrcSec)));\r
- \r
- char* szName = cRDirE->GetName();\r
- WORD iLen = strlen(szName) + 1;\r
+ while (!qStrings.empty()) {
+ CResourceDirectoryEntry* cRDirE = qStrings.front();
+
+- PMY_IMAGE_RESOURCE_DIRECTORY_ENTRY(cRDirE->m_dwWrittenAt)->NameString.NameOffset = ConvertEndianness(DWORD(seeker) - DWORD(pbRsrcSec));
++ PMY_IMAGE_RESOURCE_DIRECTORY_ENTRY(cRDirE->m_dwWrittenAt)->NameString.NameOffset = ConvertEndianness(DWORD(ULONG_PTR(seeker) - ULONG_PTR(pbRsrcSec)));
+
+ char* szName = cRDirE->GetName();
+ WORD iLen = strlen(szName) + 1;
@@ -626,7 +626,7 @@
- while (!qDataEntries2.empty()) {\r
- CResourceDataEntry* cRDataE = qDataEntries2.front();\r
- CopyMemory(seeker, cRDataE->GetData(), cRDataE->GetSize());\r
-- PIMAGE_RESOURCE_DATA_ENTRY(cRDataE->m_dwWrittenAt)->OffsetToData = ConvertEndianness(seeker - pbRsrcSec + m_dwResourceSectionVA);\r
-+ PIMAGE_RESOURCE_DATA_ENTRY(cRDataE->m_dwWrittenAt)->OffsetToData = ConvertEndianness(DWORD(seeker - pbRsrcSec + m_dwResourceSectionVA));\r
- \r
- seeker += RALIGN(cRDataE->GetSize(), 8);\r
- \r
+ while (!qDataEntries2.empty()) {
+ CResourceDataEntry* cRDataE = qDataEntries2.front();
+ CopyMemory(seeker, cRDataE->GetData(), cRDataE->GetSize());
+- PIMAGE_RESOURCE_DATA_ENTRY(cRDataE->m_dwWrittenAt)->OffsetToData = ConvertEndianness(seeker - pbRsrcSec + m_dwResourceSectionVA);
++ PIMAGE_RESOURCE_DATA_ENTRY(cRDataE->m_dwWrittenAt)->OffsetToData = ConvertEndianness(DWORD(seeker - pbRsrcSec + m_dwResourceSectionVA));
+
+ seeker += RALIGN(cRDataE->GetSize(), 8);
+
@@ -636,7 +636,7 @@
- /*\r
- * Set all of the directory entries offsets.\r
- */\r
-- SetOffsets(m_cResDir, DWORD(pbRsrcSec));\r
-+ SetOffsets(m_cResDir, ULONG_PTR(pbRsrcSec));\r
- }\r
- \r
- // Sets the offsets in directory entries\r
+ /*
+ * Set all of the directory entries offsets.
+ */
+- SetOffsets(m_cResDir, DWORD(pbRsrcSec));
++ SetOffsets(m_cResDir, ULONG_PTR(pbRsrcSec));
+ }
+
+ // Sets the offsets in directory entries
@@ -650,7 +650,7 @@
- SetOffsets(resDir->GetEntry(i)->GetSubDirectory(), newResDirAt);\r
- }\r
- else {\r
-- rde->OffsetToData = ConvertEndianness(resDir->GetEntry(i)->GetDataEntry()->m_dwWrittenAt - newResDirAt);\r
-+ rde->OffsetToData = ConvertEndianness(DWORD(resDir->GetEntry(i)->GetDataEntry()->m_dwWrittenAt - newResDirAt));\r
- }\r
- }\r
- }\r
+ SetOffsets(resDir->GetEntry(i)->GetSubDirectory(), newResDirAt);
+ }
+ else {
+- rde->OffsetToData = ConvertEndianness(resDir->GetEntry(i)->GetDataEntry()->m_dwWrittenAt - newResDirAt);
++ rde->OffsetToData = ConvertEndianness(DWORD(resDir->GetEntry(i)->GetDataEntry()->m_dwWrittenAt - newResDirAt));
+ }
+ }
+ }
@@ -758,7 +758,7 @@
- // Returns -1 if can not be found\r
- int CResourceDirectory::Find(char* szName) {\r
- if (IS_INTRESOURCE(szName))\r
-- return Find((WORD) (DWORD) szName);\r
-+ return Find((WORD) (ULONG_PTR) szName);\r
- else\r
- if (szName[0] == '#')\r
- return Find(WORD(atoi(szName + 1)));\r
+ // Returns -1 if can not be found
+ int CResourceDirectory::Find(char* szName) {
+ if (IS_INTRESOURCE(szName))
+- return Find((WORD) (DWORD) szName);
++ return Find((WORD) (ULONG_PTR) szName);
+ else
+ if (szName[0] == '#')
+ return Find(WORD(atoi(szName + 1)));
@@ -836,7 +836,7 @@
- if (IS_INTRESOURCE(szName)) {\r
- m_bHasName = false;\r
- m_szName = 0;\r
-- m_wId = (WORD) (DWORD) szName;\r
-+ m_wId = (WORD) (ULONG_PTR) szName;\r
- }\r
- else {\r
- m_bHasName = true;\r
+ if (IS_INTRESOURCE(szName)) {
+ m_bHasName = false;
+ m_szName = 0;
+- m_wId = (WORD) (DWORD) szName;
++ m_wId = (WORD) (ULONG_PTR) szName;
+ }
+ else {
+ m_bHasName = true;
@@ -851,7 +851,7 @@
- if (IS_INTRESOURCE(szName)) {\r
- m_bHasName = false;\r
- m_szName = 0;\r
-- m_wId = (WORD) (DWORD) szName;\r
-+ m_wId = (WORD) (ULONG_PTR) szName;\r
- }\r
- else {\r
- m_bHasName = true;\r
+ if (IS_INTRESOURCE(szName)) {
+ m_bHasName = false;
+ m_szName = 0;
+- m_wId = (WORD) (DWORD) szName;
++ m_wId = (WORD) (ULONG_PTR) szName;
+ }
+ else {
+ m_bHasName = true;
Index: Source/ResourceEditor.h
---- ../nsis-2.17-src-rel/Source/ResourceEditor.h 2006-04-28 08:54:42.000000000 -0700
-+++ ./Source/ResourceEditor.h 2006-06-20 00:20:39.000000000 -0700
+--- ../release/nsis-2.17-src/Source/ResourceEditor.h 2006-04-28 08:54:42.000000000 -0700
++++ ./Source/ResourceEditor.h 2006-07-31 05:48:44.000000000 -0700
@@ -173,7 +173,7 @@
- \r
- void Destroy();\r
- \r
-- DWORD m_dwWrittenAt;\r
-+ ULONG_PTR m_dwWrittenAt;\r
- \r
- private:\r
- IMAGE_RESOURCE_DIRECTORY m_rdDir;\r
+
+ void Destroy();
+
+- DWORD m_dwWrittenAt;
++ ULONG_PTR m_dwWrittenAt;
+
+ private:
+ IMAGE_RESOURCE_DIRECTORY m_rdDir;
@@ -197,7 +197,7 @@
- \r
- CResourceDataEntry* GetDataEntry();\r
- \r
-- DWORD m_dwWrittenAt;\r
-+ ULONG_PTR m_dwWrittenAt;\r
- \r
- private:\r
- bool m_bHasName;\r
+
+ CResourceDataEntry* GetDataEntry();
+
+- DWORD m_dwWrittenAt;
++ ULONG_PTR m_dwWrittenAt;
+
+ private:
+ bool m_bHasName;
@@ -226,7 +226,7 @@
- DWORD GetSize();\r
- DWORD GetCodePage();\r
- \r
-- DWORD m_dwWrittenAt;\r
-+ ULONG_PTR m_dwWrittenAt;\r
- \r
- private:\r
- BYTE* m_pbData;\r
+ DWORD GetSize();
+ DWORD GetCodePage();
+
+- DWORD m_dwWrittenAt;
++ ULONG_PTR m_dwWrittenAt;
+
+ private:
+ BYTE* m_pbData;
+Index: Source/script.cpp
+--- ../release/nsis-2.17-src/Source/script.cpp 2006-03-28 10:22:34.000000000 -0800
++++ ./Source/script.cpp 2006-07-31 20:56:03.000000000 -0700
+@@ -4748,8 +4748,8 @@
+ {
+ struct
+ {
+- long l;
+- long h;
++ int l;
++ int h;
+ } words;
+ long long ll;
+ };
+@@ -6075,8 +6075,8 @@
+ {
+ struct
+ {
+- long l;
+- long h;
++ int l;
++ int h;
+ } words;
+ long long ll;
+ };
Index: Source/util.cpp
---- ../nsis-2.17-src-rel/Source/util.cpp 2006-04-28 08:54:42.000000000 -0700
-+++ ./Source/util.cpp 2006-06-20 00:41:16.000000000 -0700
+--- ../release/nsis-2.17-src/Source/util.cpp 2006-04-28 08:54:42.000000000 -0700
++++ ./Source/util.cpp 2006-07-31 05:48:44.000000000 -0700
@@ -312,7 +312,7 @@
- FIX_ENDIAN_INT32_INPLACE(rdEntry.OffsetToData);\r
- MY_ASSERT(!rdEntry.DirectoryOffset.DataIsDirectory, "bad resource directory");\r
- \r
-- PRESOURCE_DIRECTORY rdIcons = PRESOURCE_DIRECTORY(rdEntry.DirectoryOffset.OffsetToDirectory + DWORD(rdRoot));\r
-+ PRESOURCE_DIRECTORY rdIcons = PRESOURCE_DIRECTORY(rdEntry.DirectoryOffset.OffsetToDirectory + ULONG_PTR(rdRoot));\r
- \r
- MY_ASSERT((size_t)rdIcons - (size_t)exeHeader > exeHeaderSize, "corrupted EXE - invalid pointer");\r
- \r
+ FIX_ENDIAN_INT32_INPLACE(rdEntry.OffsetToData);
+ MY_ASSERT(!rdEntry.DirectoryOffset.DataIsDirectory, "bad resource directory");
+
+- PRESOURCE_DIRECTORY rdIcons = PRESOURCE_DIRECTORY(rdEntry.DirectoryOffset.OffsetToDirectory + DWORD(rdRoot));
++ PRESOURCE_DIRECTORY rdIcons = PRESOURCE_DIRECTORY(rdEntry.DirectoryOffset.OffsetToDirectory + ULONG_PTR(rdRoot));
+
+ MY_ASSERT((size_t)rdIcons - (size_t)exeHeader > exeHeaderSize, "corrupted EXE - invalid pointer");
+
@@ -325,7 +325,7 @@
- FIX_ENDIAN_INT32_INPLACE(icoEntry.OffsetToData);\r
- \r
- MY_ASSERT(!icoEntry.DirectoryOffset.DataIsDirectory, "bad resource directory");\r
-- PRESOURCE_DIRECTORY rd = PRESOURCE_DIRECTORY(icoEntry.DirectoryOffset.OffsetToDirectory + DWORD(rdRoot));\r
-+ PRESOURCE_DIRECTORY rd = PRESOURCE_DIRECTORY(icoEntry.DirectoryOffset.OffsetToDirectory + ULONG_PTR(rdRoot));\r
- \r
- MY_ASSERT((size_t)rd - (size_t)exeHeader > exeHeaderSize, "corrupted EXE - invalid pointer");\r
- \r
+ FIX_ENDIAN_INT32_INPLACE(icoEntry.OffsetToData);
+
+ MY_ASSERT(!icoEntry.DirectoryOffset.DataIsDirectory, "bad resource directory");
+- PRESOURCE_DIRECTORY rd = PRESOURCE_DIRECTORY(icoEntry.DirectoryOffset.OffsetToDirectory + DWORD(rdRoot));
++ PRESOURCE_DIRECTORY rd = PRESOURCE_DIRECTORY(icoEntry.DirectoryOffset.OffsetToDirectory + ULONG_PTR(rdRoot));
+
+ MY_ASSERT((size_t)rd - (size_t)exeHeader > exeHeaderSize, "corrupted EXE - invalid pointer");
+
@@ -334,7 +334,7 @@
- \r
- MY_ASSERT(datEntry.DirectoryOffset.DataIsDirectory, "bad resource directory");\r
- \r
-- PIMAGE_RESOURCE_DATA_ENTRY rde = PIMAGE_RESOURCE_DATA_ENTRY(datEntry.OffsetToData + DWORD(rdRoot));\r
-+ PIMAGE_RESOURCE_DATA_ENTRY rde = PIMAGE_RESOURCE_DATA_ENTRY(datEntry.OffsetToData + ULONG_PTR(rdRoot));\r
- \r
- MY_ASSERT((size_t)rde - (size_t)exeHeader > exeHeaderSize, "corrupted EXE - invalid pointer");\r
- \r
+
+ MY_ASSERT(datEntry.DirectoryOffset.DataIsDirectory, "bad resource directory");
+
+- PIMAGE_RESOURCE_DATA_ENTRY rde = PIMAGE_RESOURCE_DATA_ENTRY(datEntry.OffsetToData + DWORD(rdRoot));
++ PIMAGE_RESOURCE_DATA_ENTRY rde = PIMAGE_RESOURCE_DATA_ENTRY(datEntry.OffsetToData + ULONG_PTR(rdRoot));
+
+ MY_ASSERT((size_t)rde - (size_t)exeHeader > exeHeaderSize, "corrupted EXE - invalid pointer");
+
@@ -355,10 +355,10 @@
- }\r
- \r
- // Set offset\r
-- DWORD dwOffset = FIX_ENDIAN_INT32(rde->OffsetToData) + DWORD(rdRoot) - dwResourceSectionVA - DWORD(exeHeader);\r
-+ DWORD dwOffset = FIX_ENDIAN_INT32(rde->OffsetToData) + ULONG_PTR(rdRoot) - dwResourceSectionVA - ULONG_PTR(exeHeader);\r
- *(LPDWORD) seeker = FIX_ENDIAN_INT32(dwOffset);\r
- \r
-- MY_ASSERT(dwOffset > exeHeaderSize || dwOffset < (DWORD)rdRoot - (DWORD)exeHeader, "invalid data offset - icon resource probably compressed");\r
-+ MY_ASSERT(dwOffset > exeHeaderSize || dwOffset < (ULONG_PTR)rdRoot - (ULONG_PTR)exeHeader, "invalid data offset - icon resource probably compressed");\r
- }\r
- \r
- LPBYTE seeker = uninstIconData;\r
+ }
+
+ // Set offset
+- DWORD dwOffset = FIX_ENDIAN_INT32(rde->OffsetToData) + DWORD(rdRoot) - dwResourceSectionVA - DWORD(exeHeader);
++ DWORD dwOffset = FIX_ENDIAN_INT32(rde->OffsetToData) + ULONG_PTR(rdRoot) - dwResourceSectionVA - ULONG_PTR(exeHeader);
+ *(LPDWORD) seeker = FIX_ENDIAN_INT32(dwOffset);
+
+- MY_ASSERT(dwOffset > exeHeaderSize || dwOffset < (DWORD)rdRoot - (DWORD)exeHeader, "invalid data offset - icon resource probably compressed");
++ MY_ASSERT(dwOffset > exeHeaderSize || dwOffset < (ULONG_PTR)rdRoot - (ULONG_PTR)exeHeader, "invalid data offset - icon resource probably compressed");
+ }
+
+ LPBYTE seeker = uninstIconData;
+Index: Source/writer.cpp
+--- ../release/nsis-2.17-src/Source/writer.cpp 2006-03-11 03:13:07.000000000 -0800
++++ ./Source/writer.cpp 2006-07-31 13:27:37.000000000 -0700
+@@ -64,7 +64,7 @@
+ }
+
+ #ifdef NSIS_CONFIG_CRC_SUPPORT
+-extern "C" unsigned long NSISCALL CRC32(unsigned long crc, const unsigned char *buf, unsigned int len);
++extern "C" unsigned int NSISCALL CRC32(unsigned int crc, const unsigned char *buf, unsigned int len);
+
+ void crc_writer_sink::write_data(const void *data, const size_t size)
+ {
+Index: Source/writer.h
+--- ../release/nsis-2.17-src/Source/writer.h 2006-03-11 03:13:07.000000000 -0800
++++ ./Source/writer.h 2006-07-31 13:27:58.000000000 -0700
+@@ -57,12 +57,12 @@
+ #ifdef NSIS_CONFIG_CRC_SUPPORT
+ class crc_writer_sink : public writer_sink {
+ public:
+- crc_writer_sink(unsigned long *crc) : m_crc(crc) {}
++ crc_writer_sink(unsigned int *crc) : m_crc(crc) {}
+
+ virtual void write_data(const void *data, const size_t size);
+
+ private:
+- unsigned long *m_crc;
++ unsigned int *m_crc;
+
+ };
+ #endif
# Should debugging info be included in the executables? The default value
# "default" means that debug info will be included if BUILD=debug
+--- ../release/wxWidgets-2.6.3/include/wx/string.h 2005-12-15 11:26:27.000000000 -0800
++++ ./include/wx/string.h 2006-07-31 20:50:32.000000000 -0700
+@@ -229,7 +229,7 @@
+ #endif
+ // VC++ free must take place in same DLL as allocation when using non dll
+ // run-time library (e.g. Multithreaded instead of Multithreaded DLL)
+-#if defined(__VISUALC__) && defined(_MT) && !defined(_DLL)
++#if 1 || defined(__VISUALC__) && defined(_MT) && !defined(_DLL)
+ void Unlock() { if ( !IsEmpty() && --nRefs == 0) Free(); }
+ // we must not inline deallocation since allocation is not inlined
+ void Free();
+--- ../release/wxWidgets-2.6.3/src/common/string.cpp 2005-11-30 05:30:08.000000000 -0800
++++ ./src/common/string.cpp 2006-07-31 20:48:53.000000000 -0700
+@@ -172,7 +172,7 @@
+ // wxStringData class deallocation
+ // ===========================================================================
+
+-#if defined(__VISUALC__) && defined(_MT) && !defined(_DLL)
++#if 1 || defined(__VISUALC__) && defined(_MT) && !defined(_DLL)
+ # pragma message (__FILE__ ": building with Multithreaded non DLL runtime has a performance impact on wxString!")
+ void wxStringData::Free()
+ {
+++ /dev/null
-; winbacula.nsi
-;
-; Began as a version written by Michel Meyers (michel@tcnnet.dyndns.org)
-;
-; Adapted by Kern Sibbald for native Win32 Bacula
-; added a number of elements from Christopher Hull's installer
-;
-; D. Scott Barninger Nov 13 2004
-; added configuration editing for bconsole.conf and wx-console.conf
-; better explanation in dialog boxes for editing config files
-; added Start Menu items
-; fix uninstall of config files to do all not just bacula-fd.conf
-;
-; D. Scott Barninger Dec 05 2004
-; added specification of default permissions for bacula-fd.conf
-; - thanks to Jamie Ffolliott for pointing me at cacls
-; added removal of working-dir files if user selects to remove config
-; uninstall is now 100% clean
-;
-; D. Scott Barninger Apr 17 2005
-; 1.36.3 release docs update
-; add pdf manual and menu shortcut
-;
-; Robert Nelson May 15 2006
-; Pretty much rewritten
-; Use LogicLib.nsh
-; Added Bacula-SD and Bacula-DIR
-; Replaced ParameterGiven with standard GetOptions
-
-;
-; Command line options:
-;
-; /cygwin - do cygwin install into c:\cygwin\bacula
-; /service -
-; /start
-
-!define PRODUCT "Bacula"
-!define VERSION "@VERSION@"
-
-!define PTHREADS_DIR "..\..\..\depkgs-win32\pthreads\release"
-!define MINGW_DIR "C:\MinGW\bin"
-
-!define BUILD_TOOLS "MinGW"
-
-;!define BUILD_TOOLS "VC8"
-;!define VC_REDIST_DIR "C:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT"
-
-;
-; Include the Modern UI
-;
-!include "MUI.nsh"
-!include "LogicLib.nsh"
-!include "FileFunc.nsh"
-
-;
-; Basics
-;
- Name "Bacula"
- OutFile "winbacula-${VERSION}.exe"
- SetCompressor lzma
- InstallDir "$PROGRAMFILES\Bacula"
- InstallDirRegKey HKLM Software\Bacula InstallLocation
-
- InstType "Client"
- InstType "Server"
- InstType "Full"
-
-;
-; Pull in pages
-;
-
- !insertmacro MUI_PAGE_WELCOME
-; !insertmacro MUI_PAGE_LICENSE "..\..\LICENSE"
- !insertmacro MUI_PAGE_COMPONENTS
- !insertmacro MUI_PAGE_DIRECTORY
- Page custom EnterClientConfig LeaveClientConfig
- Page custom EnterOptions
- !insertmacro MUI_PAGE_INSTFILES
- !insertmacro MUI_PAGE_FINISH
-
- !insertmacro MUI_UNPAGE_WELCOME
- !insertmacro MUI_UNPAGE_CONFIRM
- !insertmacro MUI_UNPAGE_INSTFILES
- !insertmacro MUI_UNPAGE_FINISH
-
- !define MUI_ABORTWARNING
-
- !insertmacro MUI_LANGUAGE "English"
-
- !insertmacro GetParameters
- !insertmacro GetOptions
-
-DirText "Setup will install Bacula ${VERSION} to the directory specified below. To install in a different folder, click Browse and select another folder.$\n$\nNote to CYGWIN users: please choose your CYGWIN root directory."
-
-;
-; Reserve Files
-;
- ReserveFile "ClientConfig.ini"
- !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
-;
-; Global Variables
-;
-Var OptCygwin
-Var OptService
-Var OptStart
-Var OptSilent
-
-Var DependenciesDone
-
-Var OsIsNT
-
-Var ConfigClientName
-Var ConfigClientPort
-Var ConfigMaxJobs
-Var ConfigDirectorName
-Var ConfigDirectorPW
-Var ConfigMonitorName
-Var ConfigMonitorPW
-
-Var OptionsClientService
-Var OptionsClientStart
-Var OptionsStorageService
-Var OptionsStorageStart
-Var OptionsDirectorService
-Var OptionsDirectorStart
-Var OptionsDirectorDB
-
-Var HDLG
-Var HCTL
-
-Function .onInit
- Push $R0
- Push $R1
-
- ; Process Command Line Options
- StrCpy $OptCygwin 0
- StrCpy $OptService 0
- StrCpy $OptStart 0
- StrCpy $OptSilent 0
- StrCpy $DependenciesDone 0
- StrCpy $OsIsNT 0
-
- ${GetParameters} $R0
-
- ClearErrors
- ${GetOptions} $R0 "/cygwin" $R1
- IfErrors +2
- StrCpy $OptCygwin 1
-
- ClearErrors
- ${GetOptions} $R0 "/service" $R1
- IfErrors +2
- StrCpy $OptService 1
-
- ClearErrors
- ${GetOptions} $R0 "/start" $R1
- IfErrors +2
- StrCpy $OptStart 1
-
- IfSilent 0 +2
- StrCpy $OptSilent 1
-
- ${If} $OptCygwin = 1
- StrCpy $INSTDIR "C:\cygwin\bacula"
- ${EndIf}
-
- ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
- ${If} $R0 != ""
- StrCpy $OsIsNT 1
- ${EndIf}
-
- !insertmacro MUI_INSTALLOPTIONS_EXTRACT "ClientConfig.ini"
-
- Pop $R1
- Pop $R0
-FunctionEnd
-
-Function CopyDependencies
- SetOutPath "$INSTDIR\bin"
-
- ${If} $DependenciesDone = 0
-!if BUILD_TOOLS == "VC8"
- File "${PTHREADS_DIR}\pthreadVCE.dll"
- File "${VC_REDIST_DIR}\msvcm80.dll"
- File "${VC_REDIST_DIR}\msvcp80.dll"
- File "${VC_REDIST_DIR}\msvcr80.dll"
- File "${VC_REDIST_DIR}\Microsoft.VC80.CRT.manifest"
-!endif
-!if BUILD_TOOLS == "MinGW"
- File "${PTHREADS_DIR}\pthreadGCE.dll"
- File "${MINGW_DIR}\mingwm10.dll"
-!endif
- StrCpy $DependenciesDone 1
- ${EndIf}
-FunctionEnd
-
-Section "-Initialize"
- ; Create Start Menu Directory
-
- WriteRegStr HKLM Software\Bacula InstallLocation "$INSTDIR"
-
- SetShellVarContext all
- CreateDirectory "$SMPROGRAMS\Bacula"
-
- CreateDirectory "$INSTDIR"
- CreateDirectory "$INSTDIR\bin"
- CreateDirectory "$APPDATA\Bacula"
-
- File ..\..\LICENSE
- Delete /REBOOTOK "$INSTDIR\bin\License.txt"
-SectionEnd
-
-SectionGroup "Client"
-
-Section "File Service" SecFileDaemon
- SectionIn 1 2 3
-
- SetOutPath "$INSTDIR\bin"
- File "Release\bacula-fd.exe"
-
- StrCpy $R0 0
- StrCpy $R1 "$APPDATA\Bacula\bacula-fd.conf"
- IfFileExists $R1 0 +3
- StrCpy $R0 1
- StrCpy $R1 "$R1.new"
-
- File /oname=$R1 ..\filed\bacula-fd.conf.in
-
- ${If} $OptSilent <> 1
- ${AndIf} $R0 <> 1
- MessageBox MB_OK \
- "Please edit the configuration file $R1 to fit your installation. When you click the OK button Wordpad will open to allow you to do this. Be sure to save your changes before closing Wordpad."
- Exec 'write "$R1"' ; spawn wordpad with the file to be edited
- ${EndIf}
- ${If} $OsIsNT = 1
- ExecWait 'cmd.exe /C echo Y|cacls "$R1" /G SYSTEM:F Administrators:F'
- ${EndIf}
-
- StrCpy $0 bacula-fd
- StrCpy $1 "File Service"
- StrCpy $2 $OptionsClientService
- StrCpy $3 $OptionsClientStart
-
- Call InstallDaemon
-
- CreateShortCut "$SMPROGRAMS\Bacula\Edit Client Configuration.lnk" "write.exe" '"$APPDATA\Bacula\bacula-fd.conf"'
-SectionEnd
-
-SectionGroupEnd
-
-SectionGroup "Server"
-
-Section "Storage Service" SecStorageDaemon
- SectionIn 2 3
-
- SetOutPath "$INSTDIR\bin"
- File "Release\bacula-sd.exe"
- File "Release\bcopy.exe"
- File "Release\bextract.exe"
- File "Release\bls.exe"
- File "Release\bscan.exe"
- File "Release\btape.exe"
-
- StrCpy $R0 0
- StrCpy $R1 "$APPDATA\Bacula\bacula-sd.conf"
- IfFileExists $R1 0 +3
- StrCpy $R0 1
- StrCpy $R1 "$R1.new"
-
- File /oname=$R1 ..\stored\bacula-sd.conf.in
-
- ${If} $OptSilent <> 1
- ${AndIf} $R0 <> 1
- MessageBox MB_OK \
- "Please edit the configuration file $R1 to fit your installation. When you click the OK button Wordpad will open to allow you to do this. Be sure to save your changes before closing Wordpad."
- Exec 'write "$R1"' ; spawn wordpad with the file to be edited
- ${EndIf}
- ${If} $OsIsNT = 1
- ExecWait 'cmd.exe /C echo Y|cacls "$R1" /G SYSTEM:F Administrators:F'
- ${EndIf}
-
- StrCpy $0 bacula-sd
- StrCpy $1 "Storage Service"
- StrCpy $2 $OptionsStorageService
- StrCpy $3 $OptionsStorageStart
- Call InstallDaemon
-
- CreateShortCut "$SMPROGRAMS\Bacula\Edit Storage Configuration.lnk" "write.exe" '"$APPDATA\Bacula\bacula-sd.conf"'
-SectionEnd
-
-Section "Director Service" SecDirectorDaemon
- SectionIn 2 3
-
- SetOutPath "$INSTDIR\bin"
- File "Release\bacula-dir.exe"
- File "Release\dbcheck.exe"
-
- StrCpy $R0 0
- StrCpy $R1 "$APPDATA\Bacula\bacula-dir.conf"
- IfFileExists $R1 0 +3
- StrCpy $R0 1
- StrCpy $R1 "$R1.new"
-
- File /oname=$R1 ..\dird\bacula-dir.conf.in
-
- ${If} $OptSilent <> 1
- ${AndIf} $R0 <> 1
- MessageBox MB_OK \
- "Please edit the configuration file $R1 to fit your installation. When you click the OK button Wordpad will open to allow you to do this. Be sure to save your changes before closing Wordpad."
- Exec 'write "$R1"' ; spawn wordpad with the file to be edited
- ${EndIf}
- ${If} $OsIsNT = 1
- ExecWait 'cmd.exe /C echo Y|cacls "$R1" /G SYSTEM:F Administrators:F'
- ${EndIf}
-
- StrCpy $0 bacula-dir
- StrCpy $1 "Director Service"
- StrCpy $2 $OptionsDirectorService
- StrCpy $3 $OptionsDirectorStart
- Call InstallDaemon
-
- CreateShortCut "$SMPROGRAMS\Bacula\Edit Director Configuration.lnk" "write.exe" '"$APPDATA\Bacula\bacula-dir.conf"'
-SectionEnd
-
-SectionGroupEnd
-
-SectionGroup "Consoles"
-
-Section "Command Console" SecConsole
- SectionIn 3
-
- File Release\bconsole.exe
- Call CopyDependencies
-
- StrCpy $R0 0
- StrCpy $R1 "$APPDATA\Bacula\bconsole.conf"
- IfFileExists $R1 0 +3
- StrCpy $R0 1
- StrCpy $R1 "$R1.new"
-
- File /oname=$R1 ..\console\bconsole.conf.in
-
- ${If} $OptSilent <> 1
- ${AndIf} $R0 <> 1
- MessageBox MB_OK \
- "Please edit the configuration file $R1 to fit your installation. When you click the OK button Wordpad will open to allow you to do this. Be sure to save your changes before closing Wordpad."
- Exec 'write "$R1"' ; spawn wordpad with the file to be edited
- ${EndIf}
- ${If} $OsIsNT = 1
- ExecWait 'cmd.exe /C echo Y|cacls "$R1" /G SYSTEM:F Administrators:F'
- ${EndIf}
-
- CreateShortCut "$SMPROGRAMS\Bacula\Edit Command Console Configuration.lnk" "write.exe" '"$APPDATA\Bacula\bconsole.conf"'
-
-SectionEnd
-
-Section "Graphical Console" SecWxConsole
- SectionIn 1 2 3
-
- File Release\wx-console.exe
- Call CopyDependencies
-
- StrCpy $R0 0
- StrCpy $R1 "$APPDATA\Bacula\wx-console.conf"
- IfFileExists $R1 0 +3
- StrCpy $R0 1
- StrCpy $R1 "$R1.new"
-
- File /oname=$R1 ..\wx-console\wx-console.conf.in
-
- ${If} $OptSilent <> 1
- ${AndIf} $R0 <> 1
- MessageBox MB_OK \
- "Please edit the configuration file $R1 to fit your installation. When you click the OK button Wordpad will open to allow you to do this. Be sure to save your changes before closing Wordpad."
- Exec 'write "$R1"' ; spawn wordpad with the file to be edited
- ${EndIf}
- ${If} $OsIsNT = 1
- ExecWait 'cmd.exe /C echo Y|cacls "$R1" /G SYSTEM:F Administrators:F'
- ${EndIf}
-
- ; Create Start Menu entry
- CreateShortCut "$SMPROGRAMS\Bacula\Console.lnk" "$INSTDIR\bin\wx-console.exe" '-c "$APPDATA\Bacula\wx-console.conf"' "$INSTDIR\bin\wx-console.exe" 0
- CreateShortCut "$SMPROGRAMS\Bacula\Edit Graphical Console Configuration.lnk" "write.exe" '"$APPDATA\Bacula\wx-console.conf"'
-SectionEnd
-
-SectionGroupEnd
-
-SectionGroup "Documentation"
-
-Section "Documentation (Acrobat Format)" SecDocPdf
- SectionIn 1 2 3
-
- SetOutPath "$INSTDIR\doc"
- CreateDirectory "$INSTDIR\doc"
- File ..\..\..\docs\manual\bacula.pdf
- CreateShortCut "$SMPROGRAMS\Bacula\Manual.lnk" '"$INSTDIR\doc\bacula.pdf"'
-SectionEnd
-
-Section "Documentation (HTML Format)" SecDocHtml
- SectionIn 3
-
- SetOutPath "$INSTDIR\doc"
- CreateDirectory "$INSTDIR\doc"
- File ..\..\..\docs\manual\bacula\*.html
- File ..\..\..\docs\manual\bacula\*.png
- File ..\..\..\docs\manual\bacula\*.css
- CreateShortCut "$SMPROGRAMS\Bacula\Manual (HTML).lnk" '"$INSTDIR\doc\bacula.html"'
-SectionEnd
-
-SectionGroupEnd
-
-Section "-Write Installer"
- ; Write the uninstall keys for Windows & create Start Menu entry
- WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "DisplayName" "Bacula"
- WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "UninstallString" '"$INSTDIR\uninstall.exe"'
- WriteUninstaller "$INSTDIR\Uninstall.exe"
- CreateShortCut "$SMPROGRAMS\Bacula\Uninstall Bacula.lnk" "$INSTDIR\Uninstall.exe" "" "$INSTDIR\Uninstall.exe" 0
-SectionEnd
-
-;
-; Extra Page descriptions
-;
-
- LangString DESC_SecFileDaemon ${LANG_ENGLISH} "Install Bacula File Daemon on this system."
- LangString DESC_SecStorageDaemon ${LANG_ENGLISH} "Install Bacula Storage Daemon on this system."
- LangString DESC_SecDirectorDaemon ${LANG_ENGLISH} "Install Bacula Director Daemon on this system."
- LangString DESC_SecConsole ${LANG_ENGLISH} "Install command console program on this system."
- LangString DESC_SecWxConsole ${LANG_ENGLISH} "Install graphical console program on this system."
- LangString DESC_SecDocPdf ${LANG_ENGLISH} "Install documentation in Acrobat format on this system."
- LangString DESC_SecDocHtml ${LANG_ENGLISH} "Install documentation in HTML format on this system."
-
- LangString TITLE_ClientConfig ${LANG_ENGLISH} "Configure Client"
- LangString SUBTITLE_ClientConfig ${LANG_ENGLISH} "Create initial configuration for Client."
-
- LangString TITLE_Options ${LANG_ENGLISH} "Options"
- LangString SUBTITLE_Options ${LANG_ENGLISH} "Set installation options."
-
- !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
- !insertmacro MUI_DESCRIPTION_TEXT ${SecFileDaemon} $(DESC_SecFileDaemon)
- !insertmacro MUI_DESCRIPTION_TEXT ${SecStorageDaemon} $(DESC_SecStorageDaemon)
- !insertmacro MUI_DESCRIPTION_TEXT ${SecDirectorDaemon} $(DESC_SecDirectorDaemon)
- !insertmacro MUI_DESCRIPTION_TEXT ${SecConsole} $(DESC_SecConsole)
- !insertmacro MUI_DESCRIPTION_TEXT ${SecWxConsole} $(DESC_SecWxConsole)
- !insertmacro MUI_DESCRIPTION_TEXT ${SecDocPdf} $(DESC_SecDocPdf)
- !insertmacro MUI_DESCRIPTION_TEXT ${SecDocHtml} $(DESC_SecDocHtml)
- !insertmacro MUI_FUNCTION_DESCRIPTION_END
-
-; Uninstall section
-
-UninstallText "This will uninstall Bacula. Hit next to continue."
-
-Section "Uninstall"
- ; Shutdown any baculum that could be running
- ExecWait '"$INSTDIR\bin\bacula-fd.exe" /kill'
- ExecWait '"$INSTDIR\bin\bacula-sd.exe" /kill'
- ExecWait '"$INSTDIR\bin\bacula-dir.exe" /kill'
-
- ReadRegDWORD $R0 HKLM "Software\Bacula" "Installed_Bacula-fd"
- ${If} $R0 = 1
- ; Remove bacula service
- ExecWait '"$INSTDIR\bin\bacula-fd.exe" /remove'
- ${EndIf}
-
- ReadRegDWORD $R0 HKLM "Software\Bacula" "Installed_Bacula-sd"
- ${If} $R0 = 1
- ; Remove bacula service
- ExecWait '"$INSTDIR\bin\bacula-sd.exe" /remove'
- ${EndIf}
-
- ReadRegDWORD $R0 HKLM "Software\Bacula" "Installed_Bacula-dir"
- ${If} $R0 = 1
- ; Remove bacula service
- ExecWait '"$INSTDIR\bin\bacula-dir.exe" /remove'
- ${EndIf}
-
- ; remove registry keys
- DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula"
- DeleteRegKey HKLM "Software\Bacula"
-
- ; remove start menu items
- SetShellVarContext all
- Delete /REBOOTOK "$SMPROGRAMS\Bacula\*"
- RMDir "$SMPROGRAMS\Bacula"
-
- ; remove files and uninstaller (preserving config for now)
- Delete /REBOOTOK "$INSTDIR\bin\*.*"
- Delete /REBOOTOK "$INSTDIR\doc\*.*"
- Delete /REBOOTOK "$INSTDIR\Uninstall.exe"
-
- ; Check for existing installation
- MessageBox MB_YESNO|MB_ICONQUESTION \
- "Would you like to delete the current configuration files and the working state file?" IDNO +3
- Delete /REBOOTOK "$APPDATA\Bacula\*"
- RMDir "$APPDATA\Bacula"
-
- ; remove directories used
- RMDir "$INSTDIR\bin"
- RMDir "$INSTDIR\doc"
- RMDir "$INSTDIR"
-SectionEnd
-
-Function EnterClientConfig
- SectionGetFlags ${SecFileDaemon} $R0
- IntOp $R0 $R0 & 1
-
- SectionGetFlags ${SecStorageDaemon} $R1
- IntOp $R1 $R1 & 1
-
- SectionGetFlags ${SecDirectorDaemon} $R2
- IntOp $R2 $R2 & 1
-
- ${If} $R0 = 0
- ${OrIf} $R1 = 1
- ${OrIf} $R2 = 1
- Abort
- ${EndIf}
-
- !insertmacro MUI_HEADER_TEXT "$(TITLE_ClientConfig)" "$(SUBTITLE_ClientConfig)"
- !insertmacro MUI_INSTALLOPTIONS_INITDIALOG "ClientConfig.ini"
- Pop $HDLG ;HWND of dialog
-
- ; Initialize Controls
- ; Client Name
- !insertmacro MUI_INSTALLOPTIONS_READ $HCTL "ClientConfig.ini" "Field 3" "HWND"
- SendMessage $HCTL ${EM_LIMITTEXT} 30 0
-
- ; Client Port Number
- !insertmacro MUI_INSTALLOPTIONS_READ $HCTL "ClientConfig.ini" "Field 6" "HWND"
- SendMessage $HCTL ${EM_LIMITTEXT} 5 0
- SendMessage $HCTL ${WM_SETTEXT} 0 "STR:9102"
-
- ; Max Jobs
- !insertmacro MUI_INSTALLOPTIONS_READ $HCTL "ClientConfig.ini" "Field 8" "HWND"
- SendMessage $HCTL ${EM_LIMITTEXT} 2 0
- SendMessage $HCTL ${WM_SETTEXT} 0 "STR:20"
-
- ; Director Name
- !insertmacro MUI_INSTALLOPTIONS_READ $HCTL "ClientConfig.ini" "Field 11" "HWND"
- SendMessage $HCTL ${EM_LIMITTEXT} 30 0
-
- ; Director Password
- !insertmacro MUI_INSTALLOPTIONS_READ $HCTL "ClientConfig.ini" "Field 14" "HWND"
- SendMessage $HCTL ${EM_LIMITTEXT} 60 0
-
- ; Monitor Name
- !insertmacro MUI_INSTALLOPTIONS_READ $HCTL "ClientConfig.ini" "Field 17" "HWND"
- SendMessage $HCTL ${EM_LIMITTEXT} 30 0
-
- ; Monitor Password
- !insertmacro MUI_INSTALLOPTIONS_READ $HCTL "ClientConfig.ini" "Field 20" "HWND"
- SendMessage $HCTL ${EM_LIMITTEXT} 60 0
-
- !insertmacro MUI_INSTALLOPTIONS_SHOW
-
- ;
- ; Process results
- ;
- ; Client Name
- !insertmacro MUI_INSTALLOPTIONS_READ $ConfigClientName "ClientConfig.ini" "Field 3" "State"
- ; Client Port Number
- !insertmacro MUI_INSTALLOPTIONS_READ $ConfigClientPort "ClientConfig.ini" "Field 6" "State"
- ; Max Jobs
- !insertmacro MUI_INSTALLOPTIONS_READ $ConfigMaxJobs "ClientConfig.ini" "Field 8" "State"
-
- ; Director Name
- !insertmacro MUI_INSTALLOPTIONS_READ $ConfigDirectorName "ClientConfig.ini" "Field 11" "State"
- ; Director Password
- !insertmacro MUI_INSTALLOPTIONS_READ $ConfigDirectorPW "ClientConfig.ini" "Field 14" "State"
-
- ; Monitor Name
- !insertmacro MUI_INSTALLOPTIONS_READ $ConfigMonitorName "ClientConfig.ini" "Field 17" "State"
- ; Monitor Password
- !insertmacro MUI_INSTALLOPTIONS_READ $ConfigMonitorPW "ClientConfig.ini" "Field 20" "State"
-FunctionEnd
-
-Function LeaveClientConfig
- ; Client Port Number
- !insertmacro MUI_INSTALLOPTIONS_READ $R0 "ClientConfig.ini" "Field 6" "State"
- ${If} $R0 < 1024
- ${OrIf} $R0 > 65535
- MessageBox MB_OK "Port must be between 1024 and 65535 inclusive."
- Abort
- ${EndIf}
-
- ; Max Jobs
- !insertmacro MUI_INSTALLOPTIONS_READ $R0 "ClientConfig.ini" "Field 8" "State"
- ${If} $R0 < 1
- ${OrIf} $R0 > 99
- MessageBox MB_OK "Max Jobs must be between 1 and 99 inclusive."
- Abort
- ${EndIf}
-FunctionEnd
-
-Function EnterOptions
- SectionGetFlags ${SecFileDaemon} $R0
- IntOp $R0 $R0 & 1
-
- SectionGetFlags ${SecStorageDaemon} $R1
- IntOp $R1 $R1 & 1
-
- SectionGetFlags ${SecDirectorDaemon} $R2
- IntOp $R2 $R2 & 1
-
- ${If} $R0 = 0
- ${AndIf} $R1 = 0
- ${AndIf} $R2 = 0
- Abort
- ${EndIf}
-
- FileOpen $R3 "$PLUGINSDIR\options.ini" w
-
- StrCpy $R4 1 ; Field Number
- StrCpy $R5 0 ; Top
-
- ${If} $R0 = 1
- IntOp $R6 $R5 + 34
-
- FileWrite $R3 '[Field $R4]$\r$\n'
- FileWrite $R3 'Type="GroupBox"$\r$\nText="Client"$\r$\nLeft=0$\r$\nTop=$R5$\r$\nRight=300$\r$\nBottom=$R6$\r$\n'
-
- IntOp $R4 $R4 + 1
- IntOp $R5 $R5 + 8
- IntOp $R6 $R5 + 12
-
- FileWrite $R3 '[Field $R4]$\r$\nType="Checkbox"$\r$\nState=$OptService$\r$\nText="Install as service"$\r$\nLeft=6$\r$\nTop=$R5$\r$\nRight=280$\r$\nBottom=$R6$\r$\n'
-
- IntOp $R4 $R4 + 1
- StrCpy $R5 $R6
- IntOp $R6 $R5 + 12
-
- FileWrite $R3 '[Field $R4]$\r$\nType="Checkbox"$\r$\nState=$OptStart$\r$\nText="Start after install"$\r$\nLeft=6$\r$\nTop=$R5$\r$\nRight=280$\r$\nBottom=$R6$\r$\n'
-
- IntOp $R4 $R4 + 1
- IntOp $R5 $R6 + 8
- ${Endif}
-
- ${If} $R1 = 1
- IntOp $R6 $R5 + 34
-
- FileWrite $R3 '[Field $R4]$\r$\n'
- FileWrite $R3 'Type="GroupBox"$\r$\nText="Storage"$\r$\nLeft=0$\r$\nTop=$R5$\r$\nRight=300$\r$\nBottom=$R6$\r$\n'
-
- IntOp $R4 $R4 + 1
- IntOp $R5 $R5 + 8
- IntOp $R6 $R5 + 12
-
- FileWrite $R3 '[Field $R4]$\r$\nType="Checkbox"$\r$\nState=$OptService$\r$\nText="Install as service"$\r$\nLeft=6$\r$\nTop=$R5$\r$\nRight=280$\r$\nBottom=$R6$\r$\n'
-
- IntOp $R4 $R4 + 1
- StrCpy $R5 $R6
- IntOp $R6 $R5 + 12
-
- FileWrite $R3 '[Field $R4]$\r$\nType="Checkbox"$\r$\nState=$OptStart$\r$\nText="Start after install"$\r$\nLeft=6$\r$\nTop=$R5$\r$\nRight=280$\r$\nBottom=$R6$\r$\n'
-
- IntOp $R4 $R4 + 1
- IntOp $R5 $R6 + 8
- ${Endif}
-
- ${If} $R2 = 1
- IntOp $R6 $R5 + 46
-
- FileWrite $R3 '[Field $R4]$\r$\n'
- FileWrite $R3 'Type="GroupBox"$\r$\nText="Director"$\r$\nLeft=0$\r$\nTop=$R5$\r$\nRight=300$\r$\nBottom=$R6$\r$\n'
-
- IntOp $R4 $R4 + 1
- IntOp $R5 $R5 + 8
- IntOp $R6 $R5 + 12
-
- FileWrite $R3 '[Field $R4]$\r$\nType="Checkbox"$\r$\nState=$OptService$\r$\nText="Install as service"$\r$\nLeft=6$\r$\nTop=$R5$\r$\nRight=280$\r$\nBottom=$R6$\r$\n'
-
- IntOp $R4 $R4 + 1
- StrCpy $R5 $R6
- IntOp $R6 $R5 + 12
-
- FileWrite $R3 '[Field $R4]$\r$\nType="Checkbox"$\r$\nState=$OptStart$\r$\nText="Start after install"$\r$\nLeft=6$\r$\nTop=$R5$\r$\nRight=280$\r$\nBottom=$R6$\r$\n'
-
- IntOp $R4 $R4 + 1
- IntOp $R5 $R6 + 2
- IntOp $R6 $R5 + 8
-
- FileWrite $R3 '[Field $R4]$\r$\nType="Label"$\r$\nText="Database:"$\r$\nLeft=6$\r$\nTop=$R5$\r$\nRight=46$\r$\nBottom=$R6$\r$\n'
-
- IntOp $R4 $R4 + 1
- IntOp $R5 $R5 - 2
- IntOp $R6 $R5 + 12
-
- FileWrite $R3 '[Field $R4]$\r$\nType="RadioButton"$\r$\nState=1$\r$\nText="MySQL"$\r$\nFlags="GROUP"$\r$\nLeft=46$\r$\nTop=$R5$\r$\nRight=86$\r$\nBottom=$R6$\r$\n'
-
- IntOp $R4 $R4 + 1
- IntOp $R6 $R5 + 12
-
- FileWrite $R3 '[Field $R4]$\r$\nType="RadioButton"$\r$\nState=0$\r$\nText="PostgreSQL"$\r$\nFlags="NOTABSTOP"$\r$\nLeft=86$\r$\nTop=$R5$\r$\nRight=142$\r$\nBottom=$R6$\r$\n'
-
- IntOp $R4 $R4 + 1
- IntOp $R6 $R5 + 12
-
- FileWrite $R3 '[Field $R4]$\r$\nType="RadioButton"$\r$\nState=0$\r$\nText="Builtin"$\r$\nFlags="NOTABSTOP"$\r$\nLeft=142$\r$\nTop=$R5$\r$\nRight=182$\r$\nBottom=$R6$\r$\n'
-
- IntOp $R4 $R4 + 1
- IntOp $R5 $R6 + 8
- ${Endif}
-
- IntOp $R4 $R4 - 1
-
- FileWrite $R3 "[Settings]$\r$\nNumFields=$R4$\r$\n"
-
- FileClose $R3
-
- !insertmacro MUI_HEADER_TEXT "$(TITLE_Options)" "$(SUBTITLE_Options)"
- !insertmacro MUI_INSTALLOPTIONS_DISPLAY "Options.ini"
-
- ;
- ; Process results
- ;
- StrCpy $R4 2
-
- ${If} $R0 = 1
- ; Client
- !insertmacro MUI_INSTALLOPTIONS_READ $OptionsClientService "Options.ini" "Field $R4" "State"
- IntOp $R4 $R4 + 1
- !insertmacro MUI_INSTALLOPTIONS_READ $OptionsClientStart "Options.ini" "Field $R4" "State"
- IntOp $R4 $R4 + 2
- ${EndIf}
-
- ${If} $R0 = 1
- ; Client
- !insertmacro MUI_INSTALLOPTIONS_READ $OptionsStorageService "Options.ini" "Field $R4" "State"
- IntOp $R4 $R4 + 1
- !insertmacro MUI_INSTALLOPTIONS_READ $OptionsStorageStart "Options.ini" "Field $R4" "State"
- IntOp $R4 $R4 + 2
- ${EndIf}
-
- ${If} $R0 = 1
- ; Client
- !insertmacro MUI_INSTALLOPTIONS_READ $OptionsDirectorService "Options.ini" "Field $R4" "State"
- IntOp $R4 $R4 + 1
- !insertmacro MUI_INSTALLOPTIONS_READ $OptionsDirectorStart "Options.ini" "Field $R4" "State"
- IntOp $R4 $R4 + 2
- !insertmacro MUI_INSTALLOPTIONS_READ $R3 "Options.ini" "Field $R4" "State"
- ${If} $R3 = 1
- StrCpy $OptionsDirectorDB 1
- ${Else}
- IntOp $R4 $R4 + 1
- !insertmacro MUI_INSTALLOPTIONS_READ $R3 "Options.ini" "Field $R4" "State"
- ${If} $R3 = 1
- StrCpy $OptionsDirectorDB 2
- ${Else}
- StrCpy $OptionsDirectorDB 3
- ${Endif}
- ${Endif}
- ${EndIf}
-FunctionEnd
-
-;
-; $0 - Service Name (ie Bacula-FD)
-; $1 - Service Description (ie Bacula File Daemon)
-; $2 - Install as Service
-; $3 - Start Service now
-;
-Function InstallDaemon
- Call CopyDependencies
-
- IfFileExists "$APPDATA\Bacula\$0.conf" 0 +3
- ExecWait '"$INSTDIR\bin\$0.exe" /kill' ; Shutdown any bacula that could be running
- Sleep 3000 ; give it some time to shutdown
-
- WriteRegDWORD HKLM "Software\Bacula" "Service_$0" $2
-
- ${If} $2 = 1
- ExecWait '"$INSTDIR\bin\$0.exe" /install'
-
- ${If} $OsIsNT <> 1
- File Start.bat
- File Stop.bat
- ${EndIf}
-
- ; Start the service? (default skipped if silent, use /start to force starting)
-
- ${If} $3 = 1
- ${If} $OsIsNT = 1
- Exec 'net start bacula'
- Sleep 3000
- ${Else}
- Exec '"$INSTDIR\bin\$0.exe" -c "$APPDATA\Bacula\$0.conf"'
- ${EndIf}
- ${EndIf}
- ${Else}
- CreateShortCut "$SMPROGRAMS\Bacula\Start $1.lnk" "$INSTDIR\bin\$0.exe" '-c "$APPDATA\Bacula\$0.conf"' "$INSTDIR\bin\$0.exe" 0
- ${EndIf}
-FunctionEnd
+++ /dev/null
-..\lib\address_conf
-..\lib\alist
-..\lib\alloc
-..\lib\attr
-..\lib\base64
-..\lib\berrno
-..\lib\bget_msg
-..\lib\bnet
-..\lib\bnet_server
-..\lib\bshm
-..\lib\bsys
-..\lib\btime
-..\lib\cram-md5
-..\lib\crc32
-..\lib\crypto
-..\lib\daemon
-..\lib\dlist
-..\lib\edit
-..\lib\fnmatch
-..\lib\hmac
-..\lib\htable
-..\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\semlock
-..\lib\serial
-..\lib\sha1
-..\lib\signal
-..\lib\smartall
-..\lib\btimers
-..\lib\tls
-..\lib\tree
-..\lib\util
-..\lib\var
-..\lib\watchdog
-..\lib\winapi
-..\lib\workq
-..\compat\compat
-..\compat\print
-.\authenticate
-.\console_conf
-..\..\wx-console\console_thread
-..\..\wx-console\main
-..\..\wx-console\wxblistctrl
-..\..\wx-console\wxbmainframe
-..\..\wx-console\wxbrestorepanel
-..\..\wx-console\wxbtableparser
-..\..\wx-console\wxbtreectrl
-..\..\wx-console\wxbutils
-..\..\wx-console\wxbconfigpanel
-..\..\wx-console\wxbconfigfileeditor
-..\..\wx-console\wxbhistorytextctrl
+++ /dev/null
-rm wx-console.mak
-sed -e 's/^\(.*\)\\\(.*\)$/FILENAME=\2\nSOURCE=\1\\\2.cpp\n@@OBJMAKIN@@\n/g' filelist > objtargets1.tmp
-sed -e '/@@OBJMAKIN@@/r wx-console-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' \
- wx-console.mak.in > wx-console.mak
-rm *.tmp
\ No newline at end of file