.\" -*- nroff -*-
.TH WINEPREFIXCREATE 1 "August 2006" "@PACKAGE_STRING@" "Windows on Unix"
.SH NAME
wineprefixcreate \- create or update the Wine configuration
.SH SYNOPSIS
.BI wineprefixcreate\  [options]
.SH DESCRIPTION
.B wineprefixcreate
creates or updates a Wine configuration directory.  When running Wine,
the base name of the configuration directory is specified in the
WINEPREFIX variable, hence the name of this tool.
.PP
.B wineprefixcreate
is launched automatically by
.B wine(1)
if you don't have an existing configuration. However, it can sometimes
be useful to run it explicitly to create a different directory, or
update an existing one.
.SH OPTIONS
.TP
.BI \--prefix\  directory
Create the specified directory (or update it if it exists already). If
this option is not specified,
.B wineprefixcreate
defaults to the
.I WINEPREFIX
environment variable, or to
.I $HOME/.wine
if not set.
.TP
.B \-h, \--help
Display a usage message.
.TP
.B \-q, \--quiet
Don't display any status messages.
.TP
.B \-w, \--wait
Wait for
.B wineserver
to save everything before returning. This is necessary for instance if
you are planning to rename the directory once created; otherwise a
running server could still try to access the directory under its old
name.
.SH ENVIRONMENT VARIABLES
.TP
.I WINEPREFIX
If set, the content of this variable is taken as the name of the directory where
.B wineprefixcreate
stores its data (the default is \fI$HOME/.wine\fR). All
.B wine
processes using the same prefix share certain things like registry,
shared memory and kernel objects.  By setting
.I WINEPREFIX
to different values for different Wine processes, it is possible to
run a number of truly independent Wine sessions.
.SH FILES
.TP
.B ~/.wine
Default location for the
.B wine
configuration data.
.SH AUTHORS
Many people have contributed to the development of Wine. Please check
the file Changelog in the Wine distribution for the complete details.
.SH BUGS
If you find a bug, please submit a bug report at
.UR http://bugs.winehq.org
.B http://bugs.winehq.org.
.UE
.SH AVAILABILITY
.B wineprefixcreate
is part of the Wine distribution, which is available through WineHQ,
the Wine development headquarters, at
.UR http://www.winehq.org/
.B http://www.winehq.org/.
.UE
.br
It is distributed under the terms of the GNU Lesser General Public
License.
.SH "SEE ALSO"
.BR wine (1),
.BR wineserver (1).
