Sun Mar 19 16:30:20 1995 Alexandre Julliard (julliard@sunsite.unc.edu) * [*/*] Implemented a new memory mapping scheme. There's no longer a one-to-one mapping between 16-bit and 32-bit pointers. Please see file DEVELOPERS-HINTS for technical details. * [controls/scroll.c] Fixed bug when dragging mouse in horizontal scrollbars. * [tools/build.c] [if1632/*.spec] Removed support for C callback functions and for re-ordering of the 32-bit arguments, as these were never used. This should allow a more efficient callback scheme to be implemented. * [if1632/olecli.spec] Reduced the number of entries to make the 16-bit code fit in 64k. This limitation will soon be removed. * [loader/ldt.c] Rewrote LDT manipulation functions and implemented LDT_GetEntry(). * [memory/global.c] Rewrote Global*() routines to use the new selector allocation mechanism. * [memory/local.c] Rewrote local heap handling to use a Windows-compatible layout (not really finished yet). Implemented TOOLHELP heap-walking routines. * [memory/selector.c] Implemented LDT manipulation API functions. Tue Mar 14 19:50:28 EST 1995 William Magro (wmagro@tc.cornell.edu) * [windows/defdlg.c] Fixed problem where dialogs closed using the System menu ('Close' item or double click on close box) would hang Wine. Sun Mar 12 14:28:13 1995 Michael Patra <micky@marie.physik.TU-Berlin.DE> * [controls/listbox.c] Removed most of the statements for sending a notification message ListBoxDirectory(), DlgDirSelect(), DlgDirList(): Improved the code; Borland's standard file open dialog will work now. * [misc/main.c], [misc/file.c], [miscemu/int21.c] Added support for new command line option "-allowreadonly". If set an attempt to open a read only file in write mode will be converted to opening it read only (many programs try to open all files in read/write mode even if they only intend to read it - this might cause a few under problems under an unix-like environment where most files are read only for a "normal" user) * [loader/selector.c] GetMemoryReference(): Added support for __AHIncr and __AHShift * [misc/dos_fs.c] DOS_SimplifyPath(): This routine simplifies path names ( e.g., it will change "/usr///local/bin/../lib//a" to "/usr/local/lib/a" ) match(): rewritten * [objects/text.c] TEXT_NextLine(): Removed a bug in the handling of LF's * [miscemu/int21.c] GetFileDateTime(): Fixed. SetFileDateTime() is still broken. Sat Mar 11 19:46:19 1995 Martin von Loewis <loewis@informatik.hu-berlin.de> * [controls/menu.c] ChangeMenu: defaults to MF_INSERT InsertMenu: allow insertion even if position is one after last item * [if1632/Imakefile] [if1632/compobj.spec] [if1632/relay.c] [if1632/storage.spec] [include/dlls.h] Added stubs for STORAGE.DLL and COMPOBJ.DLL * [if1632/user.spec] [windows/message.c] InSendMessage: new function * [include/neexe.h][include/ne_image.c] NE_FixupSegment: fixed handling of additive records * [loader/selector.c] GetEntryDLLName: return NULL instead of pointer to DLL.0 if not found * [loader/signal.c] win_fault: Enter debugger on SIGFPE, too Wed Mar 1 21:47:42 1995 Cameron Heide (heide@ee.ualberta.ca) * [miscemu/int*.c] Various minor modifications to the clock tick counter, FindFirst/FindNext funcs, and DPB handling.
242 lines
5.4 KiB
Bash
242 lines
5.4 KiB
Bash
#! /bin/sh
|
|
#
|
|
# Configure script for wine
|
|
|
|
: ${EDITOR:=vi}
|
|
: ${PAGER:=more}
|
|
|
|
WINELIB=''
|
|
SHORTNAMES=''
|
|
LANGUAGE=not_matching
|
|
NEWBUILD=''
|
|
ALLDEFINES=''
|
|
|
|
# Ask question 'str' and set 'var' to reply (defaulting to 'def' on CR)
|
|
prompt ()
|
|
{
|
|
str="$1"
|
|
var="$2"
|
|
def="$3"
|
|
|
|
eval $var='$def'
|
|
echo
|
|
echo -n "$str [$def]? "
|
|
input=`head -1` # When using read, user must double all backslashes
|
|
if [ -n "$input" ]
|
|
then
|
|
eval $var='$input'
|
|
fi
|
|
}
|
|
|
|
echo Read the RELEASE-NOTES for an explanation of the various flags
|
|
echo
|
|
|
|
echo -n 'Build Wine as emulator or library (E/L) [E]? '
|
|
read input
|
|
if [ "$input" = 'l' -o "$input" = 'L' ]
|
|
then
|
|
WINELIB='#define WINELIB -DWINELIB'
|
|
ALLDEFINES="$ALLDEFINES -DWINELIB"
|
|
fi
|
|
|
|
echo
|
|
echo -n 'Short filenames (Y/N) [N]? '
|
|
read input
|
|
if [ "$input" = 'y' -o "$input" = 'Y' ]
|
|
then
|
|
SHORTNAMES='#define ShortNames -DSHORTNAMES'
|
|
ALLDEFINES="$ALLDEFINES -DSHORTNAMES"
|
|
fi
|
|
|
|
LANGS=`echo En rc/sysres_*.rc | sed -e 's/rc\/sysres_//g' -e 's/\.rc//g' -e 's/ /\//g;'`
|
|
while expr "$LANGS" : ".*$LANGUAGE" = 0 > /dev/null
|
|
do
|
|
prompt "Language ($LANGS)" LANGUAGE En
|
|
if expr "$LANGS" : ".*$LANGUAGE" = 0 > /dev/null
|
|
then
|
|
echo "\"$LANGUAGE\" is not a supported language."
|
|
fi
|
|
done
|
|
ALLDEFINES="$ALLDEFINES -ALANG\($LANGUAGE\)"
|
|
|
|
prompt "Malloc debugging" MALLOC_DEBUGGING N
|
|
if [ MALLOC_DEBUGGING = 'Y' -o $MALLOC_DEBUGGING = 'y' ]
|
|
then
|
|
MALLOC_DEBUGGING="#define MALLOC_DEBUGGING"
|
|
ALLDEFINES="$ALLDEFINES -DMALLOC_DEBUGGING"
|
|
else
|
|
MALLOC_DEBUGGING=''
|
|
fi
|
|
|
|
if [ "`(domainname)`" = 'amscons.com' ]
|
|
then
|
|
echo
|
|
echo -n 'New build program (Y/N) [N]? '
|
|
read input
|
|
if [ "$input" = 'y' -o "$input" = 'Y' ]
|
|
then
|
|
NEWBUILD='#define NewBuild -DNEWBUILD'
|
|
ALLDEFINES="$ALLDEFINES -DNEWBUILD"
|
|
fi
|
|
fi
|
|
|
|
prompt "Global configfile name" WINE_CONFIGFILE /usr/local/etc/wine.conf
|
|
|
|
if [ -r $WINE_CONFIGFILE ]
|
|
then
|
|
DEFAULT_ANS=N
|
|
else
|
|
DEFAULT_ANS=Y
|
|
fi
|
|
|
|
echo
|
|
echo -n "Do you want to make a config file now (Y/N) [$DEFAULT_ANS]? "
|
|
read input
|
|
if [ "$input" = '' ]
|
|
then
|
|
input="$DEFAULT_ANS"
|
|
fi
|
|
if [ "$input" = 'y' -o "$input" = 'Y' ]
|
|
then
|
|
if [ -r $WINE_CONFIGFILE ]
|
|
then
|
|
echo "Backing up the old file to ${WINE_CONFIGFILE}.old."
|
|
if cp $WINE_CONFIGFILE ${WINE_CONFIGFILE}.old
|
|
then :
|
|
else
|
|
echo "Error while creating backup file. Fix it and run Configure again"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
CF_A=`mount | awk '/^\/dev\/fd/ {print $3;exit} END {print "/a"}'`
|
|
prompt "Which directory do you want to use as A:" CF_A $CF_A
|
|
CF_C=`awk '{if ($3=="msdos") {print $2;exit}} END {print "/c"}' /etc/fstab`
|
|
prompt "Which directory do you want to use as C:" CF_C $CF_C
|
|
prompt "Where is the Windows directory" CF_Windows 'c:\windows'
|
|
prompt "Where is the System directory" CF_System 'c:\windows\system'
|
|
if [ -r "$CF_C/autoexec.bat" ]
|
|
then
|
|
CF_Temp=`tr A-Z a-z < "$CF_C/autoexec.batX" | sed -n 's/^ *set *temp= *\(c:.*[a-z]\).*/\1/p'`
|
|
fi
|
|
if [ -z "$CF_Temp" ]
|
|
then
|
|
CF_Temp='c:\temp'
|
|
fi
|
|
prompt "Where should Windows apps store temp files" CF_Temp $CF_Temp
|
|
prompt "Which path should be used to find progs/DLL's" CF_Path "$CF_Windows;$CF_System"
|
|
prompt "Where is sysres.dll" CF_SystemResources `pwd`/sysres.dll
|
|
prompt "Where is COM1" CF_Com1 '/dev/cua0'
|
|
prompt "Where is COM2" CF_Com2 '/dev/cua1'
|
|
prompt "Where is LPT1" CF_Lpt1 '/dev/lp0'
|
|
prompt "Log messages to which file (CON = stdout)" CF_File 'CON'
|
|
|
|
echo
|
|
sed -n -e 's/^ *\"\(WM_[A-Z0-9]*\)\".*/\1/p' < misc/spy.c | \
|
|
sort | pr -ta4w83 | sed '1 i\
|
|
Here is the list of messages:\
|
|
\
|
|
' | $PAGER
|
|
|
|
prompt "Exclude which messages from the log" CF_Exclude 'WM_SIZE;WM_TIMER'
|
|
|
|
cat > $WINE_CONFIGFILE << EOF
|
|
[drives]
|
|
A=$CF_A
|
|
C=$CF_C
|
|
|
|
[wine]
|
|
Windows=$CF_Windows
|
|
System=$CF_System
|
|
Temp=$CF_Temp
|
|
Path=$CF_Path
|
|
SystemResources=$CF_SystemResources
|
|
|
|
[fonts]
|
|
system=*-helvetica
|
|
mssansserif=*-helvetica
|
|
msserif=*-times
|
|
fixedsys=*-fixed
|
|
arial=*-helvetica
|
|
helv=*-helvetica
|
|
roman=*-times
|
|
default=*-*
|
|
|
|
[serialports]
|
|
Com1=$CF_Com1
|
|
Com2=$CF_Com2
|
|
|
|
[parallelports]
|
|
Lpt1=$CF_Lpt1
|
|
|
|
[spy]
|
|
File=$CF_File
|
|
Exclude=$CF_Exclude
|
|
EOF
|
|
|
|
echo
|
|
sed '1 i\
|
|
The config file '"$WINE_CONFIGFILE"' now looks like this:\
|
|
\
|
|
' < $WINE_CONFIGFILE | $PAGER
|
|
|
|
echo
|
|
echo -n "Do you want to edit it using $EDITOR (Y/N) [N]? "
|
|
read input
|
|
if [ "$input" = 'y' -o "$input" = 'Y' ]
|
|
then
|
|
$EDITOR $WINE_CONFIGFILE
|
|
fi
|
|
else
|
|
if [ ! -r $WINE_CONFIGFILE ]
|
|
then
|
|
echo 'Ok, remember to make it yourself later.'
|
|
fi
|
|
fi
|
|
|
|
cat > autoconf.h << EOF
|
|
/* autoconf.h generated automatically. Run Configure. */
|
|
$WINELIB
|
|
$SHORTNAMES
|
|
$NEWBUILD
|
|
$MALLOC_DEBUGGING
|
|
#define WINE_INI_GLOBAL "$WINE_CONFIGFILE"
|
|
#define AutoDefines $ALLDEFINES
|
|
EOF
|
|
|
|
echo
|
|
echo "Creating Makefiles. This may take a while."
|
|
if xmkmf -a
|
|
then :
|
|
else cat << EOF
|
|
|
|
WARNING: The exit status of the command 'xmkmf -a' indicates an error.
|
|
Maybe the Wine directory is incomplete, or Imake (see 'man xmkmf imake')
|
|
is incorrectly configured? In the latter case, it might be easiest to
|
|
reinstall X11 to get a new copy of Imake.
|
|
EOF
|
|
fi
|
|
|
|
if [ 0 -lt `find . -name "*.rej" -print | wc -l` ]
|
|
then
|
|
cat << EOF
|
|
|
|
WARNING: You have some files named '*.rej', which usually indicates
|
|
rejected patch files. Maybe you tried to upgrade Wine with 'patch',
|
|
and that some of the patches failed? If something doesn't work, this
|
|
might be the reason. See 'man patch' (especially the '-p' option).
|
|
|
|
List of "*.rej" files:
|
|
|
|
EOF
|
|
find . -name "*.rej" -print
|
|
fi
|
|
|
|
if [ -f ./Makefile ]
|
|
then
|
|
echo
|
|
echo "Configure finished. Do 'make' to compile Wine."
|
|
else
|
|
echo
|
|
echo "*** There was a problem with 'imake': the main Makefile has not be created."
|
|
fi
|