Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • wine/wine
  • rbernon/wine
  • stefan/wine
  • FireBurn/wine
  • alesliehughes/wine
  • zhiyi/wine
  • huw/wine
  • jsikorski/wine
  • hmc/wine
  • dadangnh/wine
  • epo/wine
  • dlesho/wine
  • DarkShadow44/wine
  • iamahuman/wine
  • jacek/wine
  • mstorsjo/wine
  • gofman/wine
  • alexhenrie/wine
  • giomasce/wine
  • tclem/wine
  • besentv/wine
  • dlehman25/wine
  • aeikum/wine
  • cdavis5e/wine
  • sbaars/wine
  • baskanov/wine
  • pperdigao/wine
  • DavidHusicka/wine
  • DadSchoorse/wine
  • gverm/wine
  • bshanks/wine
  • gonzoMD/wine
  • Mystral/wine
  • tmatthies/wine
  • zlice/wine
  • AndreRH/wine
  • madewokherd/wine
  • zfigura/wine
  • fgouget/wine
  • nsivov/wine
  • ElementalWarrior/wine
  • piotr/wine
  • timozuccarello/wine
  • DavidCurtiss/wine
  • cmcadams/wine
  • davidebeatrici/wine
  • hans/wine
  • insn/wine
  • danrm/wine
  • jklemann/wine
  • saedo/wine
  • sgwaki/wine
  • puetzk/wine
  • bernhardu/wine
  • ReDress/wine
  • jlucfarias/wine
  • sloper42/wine
  • ivyl/wine
  • zhui/wine
  • julliard/wine
  • ClearlyClaire/wine
  • Alexander-Wilms/wine
  • rndtrash/wine
  • redmcg/wine
  • jkfloris/wine
  • maljaf/wine
  • Tuupertunut/wine
  • bsjeon/wine
  • tati/wine
  • whydoubt/wine
  • doitsujin/wine
  • shaunren/wine
  • szanni/wine
  • tobi.goergens/wine-cabinet-patch
  • winspool/wine
  • olivierfrdierick/wine
  • linkmauve/wine
  • jin-king1/wine
  • yeyeshun/wine
  • sulix/wine
  • bgc/wine
  • fanwenjie/wine
  • IncubusRK/wine
  • js6pak/wine
  • AurimasF/wine
  • etaash.mathamsetty/wine
  • hverbeet/wine
  • Fox2Code/wine
  • jhol/wine
  • jrueger/wine
  • afrantzis/wine
  • lauri.kentta/wine
  • ehoover/wine
  • cdenton/wine
  • jkloetzke/wine
  • baryluk/wine
  • restet/wine-personal
  • orudge/wine
  • Gcenx/wine
  • mstefani/wine
  • hibbsncc1701/wine
  • jchw/wine
  • moceap/wine
  • Skryptonyte/wine
  • marzent/wine
  • msmeissn/wine
  • learn-more/wine
  • logos128/wine
  • xe/wine
  • florian-kuebler/wine
  • eason329/wine
  • gang65/wine
  • binarymaster/wine
  • nbosio1001/wine
  • sh.owais95/wine
  • yaoyuan.0553/wine
  • AnthonyLaurienti/wine
  • mivanchev/wine
  • Hi-Angel/wine
  • vt/wine
  • wyrquill/wine
  • waynus/wine
  • wuliande/wine
  • yao.yuan.wn/wine
  • K1K1/wine
  • lukehutch1027/wine
  • etang-cw/wine
  • Josueblanco/wine
  • jplotz/wine
  • j20001970/wine
  • jsm174/wine
  • aricstewart/wine
  • uncoveryoureyestheresnosun/wine
  • VitorRamos/wine
  • 0e4ef622/wine
  • tj4048750/wine
  • xantares/wine
  • maxfigura/wine
  • sanane/wine
  • juniorjr9345/wine
  • lucaspereira1234/wine
  • gerald/wine
  • lepemiguel32/wine
  • caibb2018/wine
  • CNB_Kevin/wine
  • thc13/wine
  • jaihysc/wine
  • youngsecurity/wine
  • chendeqiang1024/wine
  • rhendric/wine
  • databoose/wine
  • memory-thrasher/wine
  • salman.tajik22/wine
  • CowFroggers/wine
  • kbdharun/wine
  • dreamer/wine
  • babyjoey711/wine
  • ripxorip/wine
  • PSzczepanski1996/wine
  • steveshe006/wine
  • joshua/wine
  • cmccarthy/wine
  • tomjansen/wine
  • sonyps5201314/wine
  • katelynnking4281/wine
  • dhary686/wine
  • mathematician/wine
  • rhabacker/wine
  • steveschnepp/wine
  • nekotekina/wine
  • Aaron1011/wine
  • catsout/wine
  • kasper93/wine
  • beef331/wine
  • ESD/wine
  • sarosib/wine
  • ghurmcardash/wine
  • AMZN-hgoffin/wine
  • gtmikw/wine
  • Keming/wine
  • dpjh747-gl/wine
  • tzluo/wine
  • rfz/wine
  • illia.a.polishchuk/wine
  • new_kleth/wine
  • serkan-maker/wine
  • w-flo/wine
  • mikayahlevi/wine
  • nulleve/wine
  • pgruebele/wine
  • athiele/wine
  • paparaha4/wine
  • novenary/wine
  • Plavil/wine
  • longjunyu/wine
  • chrisli/wine
  • samkottler/wine
  • danielzgtg/wine
  • twcassel/wine
  • guo/wine
  • didier31/wine
  • Zhaoyi/wine
  • twhitehead/wine
  • svyatpro/wine
  • infyquest/wine-iq-devel
  • sebres/wine
  • endrift/wine
  • zhengbl/wine
  • joelikeyan/wine
  • IsaacMarovitz/wine
  • LouiseTheGoldenGoddess/wine
  • SergeGautherie/wine
  • Klittiklatsch/wine
  • ldhacker/wine
  • dk1006498/wine
  • ishitatsuyuki/wine
  • h3c/wine
  • wincenty.bandyta41/wine
  • ayhankus482/wine
  • q4a/wine
  • mjgarton/wine
  • agusev/wine
  • vovams/wine
  • shardulsb08/wine
  • lylythechosenone/wine
  • artemist/wine
  • dropbear/wine
  • Cherser-s/wine
  • smayr/wine
  • loveptong/wine
  • chendeqiang/wine
  • gaber139/wine
  • shytzedaka/wine
  • ghkmufc/wine
  • TornadoCookie/wine
  • klownwolfman/wine
  • bylaws/wine
  • vitorhnn/wine
  • mide1337/wine
  • mewinkler/wine
  • firelzrd/wine
  • Samsuper/wine
  • kkartaltepe/wine
  • petravion/wine
  • Maaka00524/jacob-wine
  • petrathekat/wine
  • dj/wine
  • liam-middlebrook/wine
  • padolkarlucky/wine
  • maarten/wine
  • yhd986/wine
  • linkmecry/wine
  • tehrantoday/wine
  • xuxin12345/wine
  • dmjc/wine
  • sedwards/wine
  • hanslehnert/wine
  • 3ts75/wine
  • EkaterinePapava/wine
  • lav/wine
  • lygstate/wine
  • mxkrsv/wine
  • xutaxkamay/wine
  • cbialorucki/wine
  • yshui/wine
  • baikaishiuc/wine
  • HuwCampbell/wine
  • llde/wine
  • rockdrilla/wine
  • aidanhs/wine
  • SwimmingTiger/wine
  • fvalasiad/wine
  • zsoltiv/wine
  • mailnew4ster/wine
  • ake.rehnman/wine
  • IDocin/wine
  • dmitry/wine
  • Cthuflu/wine
  • corngood/wine
  • whindsaks/wine
  • telans/wine
  • DmitrySokolov/wine
  • Pospelove/wine
  • ellingtonsantos/wine
  • roro/wine
  • wurenny/wine
  • KokoseiJ/wine
  • amurzeau/wine
  • spazzymoto/wine
  • searchingin/wine
  • marler8997/wine
  • Alcaro/wine
  • aunali1/wine
  • snaccslocc420/wine
  • ajkhoury/wine
  • qsniyg/wine
  • Matheus-TestUser1/wine
  • adamrehn/wine
  • brobston/wine
  • aalyaev/wine
  • thongthai/wine
  • j.bayer1988/wine
  • skitt/wine
  • benben/wine
  • ahmouse15/wine
  • achurch/wine
  • mfaqiri2/wine
  • yseo/wine
  • kingjinni/wine
  • userid0x0/wine
  • titan/wine
  • Komoszek/wine
  • GamzeeRakoon/wine
  • joanluc/wine
  • Alan/wine
  • meshine/wine
  • EBADF/wine
  • vibhavp/wine
  • quininer/wine
  • pawelulita/wine
  • muek2211/wine
  • chenhaoyang/wine
  • nishiyama/wine
  • silviuxgaming/wine
  • nell/wine
  • 29jm/wine
  • arilou/wine
  • Mini-Gaunt/wine
  • DodoGTA/wine
  • davispuh/wine
  • Biswa96/wine
  • mzent/wine
  • arakmar/wine
  • number201724/wine
  • yhd986/wine-up
  • rpisl/wine
  • zp1/wine-zp-cs-464
  • h0tc0d3/wine
  • Snowiiii/wine
  • gabrielb/wine
  • PureBulb/wine
  • OO/wine
  • Clara/wine
  • Saancreed/wine
  • enolp/wine
  • arthunix/wine
  • halfline/wine
  • carlo-bramini/wine
  • jfmu/wine
  • russelltg/wine
  • ntay/wine
  • YellowOnion/wine
  • niversesu/wine
  • gilvbp/wine
  • tingling0072/wine
  • DandD1517/wine
  • rastos/add-GetAnycastIpAddressTable
  • gnif/wine
  • gibsonpil/wine
  • antenabr2/wine
  • kvashis/wine
  • CKolle/wine
  • kubni/wine
  • ten0s/wine
  • Yvonne8873/wine
  • kurikaesu/wine
  • minggr/wine
  • JohnSebastienNadeau/wine
  • karshnicholas/wine
  • SamB/wine
  • apgrc/wine
  • Samiklom/wine
  • llyyr/wine
  • nberner/wine
  • katharinechui/wine
  • kirill.zhumarin/wine
  • vaxerski/wine
  • infiniteloop/wine
  • K0bin/wine
  • arethusa/wine
  • mrdeathjr28/wine
  • dank_meme/wine
  • dh/wine
  • tuomasjjrasanen/wine
  • mmcdonnell/wine
  • mxnny00/wine-manjaro-arch-compatibility
  • Joan/wine
  • g.mo.alcauter/wine
  • zhenbo_li/wine
  • tsmx/wine
  • xaqumin/wine
  • peterjc123/wine
  • ruslangaripov/wine
  • blyss/wine
  • xanathar/wine
  • michael.bond/wine
  • Quix0r/wine
  • sinisa.susnjar/wine
  • Rapid/wine
  • theli.ua/wine
  • shaun.din/wine
  • zhaohongxin/wine
  • dylan.eskew/wine
  • humbertoperezs991/wine
  • vaevi/wine
  • Riesi/wine
  • francisdb/wine
  • 1480c1/wine
  • trcrsired/wine
  • npatt/wine
  • muhammmadalli/wine9.0
  • Czahrien/wine
  • nilsen.jonas/wine
  • underdogest/wine
  • djordjem/wine
  • frubin/wine
  • LucasChollet/wine
  • lipengfei-loongson/wine
  • JacobCzekalla/wine-fork-jacob
  • omar_elantil/wine
  • lumarel/wine
  • principeagustin/wine
  • gotzl/wine
  • OneTester250376/wine
  • austin987/wine
  • unknown62627/wine
  • navi/wine
  • somedevfox/wine
  • notaz/wine
  • fcasas/wine
  • Asteroz/wine
  • MariusSchiffer/wine
  • kevinrmartinez/wine-devel
  • St1gven/wine
  • maarten256/wine
  • rcstarr87/wine
  • tinozzo123/wine
  • GermanAizek/wine
  • spencerwallace/wine
  • schloegl/wine
  • giuppococco/wine
  • shayan7878/wine
  • N080DY12/wine
  • ralf.habacker/wine
  • oh-ok/wine
  • johnporter/wine
  • Low-power/wine
  • thelande/wine
  • riyu12383/wine
  • kubapet/wine
  • Ivan_83/wine
  • SmithGoll/wine
  • gmesmer/wine
  • akarisu.de/wine
  • jwffrey9046/wine
  • anders/wine
  • markbhasawut/wine
  • dy-tea/wine
  • Benjamin_Loison/wine
  • frmdstryr/wine
  • zzam/wine
  • haydenhestad/wine
  • Deppy04/wine
  • osbre/wine
  • CharlottePabst/wine
  • SunlitTango/wine
  • ritalat/wine
  • AlexeyLushnikov/wine
  • mickdermack/wine
  • s1UMBa/wine
  • huangqinjin/wine
  • caseyr297/wine
  • d1saster/wine
  • ayufdh222/wine
  • janstrakowski/wine
  • petur/wine
  • matheus.venturini/wine-fix-ohm-sign
  • rayrapetyan/wine
  • xiaotong/wine
  • ovarley1/wine
  • dos1/wine
  • BZZZZ/wine
  • joesoroka/wine
  • toadking/wine
  • JoshuaBrest/wine
  • elias/wine
  • michele.dionisio/wine
  • garlett/wine-send-arp
  • eugenemcardle/wine
  • hugwijst/wine
  • whrvth/wine
  • loisgomez/wine
  • ramleejo/wine
  • self/wine
  • fr33z00/wine
  • JoeS209/wine
  • JacKeTUs/wine
  • nak.ak2015/wine
  • morgwai/wine
  • funfunctor/wine
500 results
Show changes
Commits on Source (174928)
root = true
# Defaults
[*]
indent_style = space
indent_size = 4
tab_width = 8
charset = utf-8
insert_final_newline = true
max_line_length = 100
[Makefile*]
indent_style = tab
indent_size = 8
[attr]generated gitlab-generated linguist-generated=true
# generated by autotools
configure generated
include/config.h.in generated
# generated by dlls/dsound/make_fir
dlls/dsound/fir.h generated
# generated by dlls/opencl/make_opencl
dlls/opencl/opencl.spec generated
dlls/opencl/opencl_types.h generated
dlls/opencl/pe_thunks.c generated
dlls/opencl/unix_thunks.c generated
dlls/opencl/unixlib.h generated
# generated by dlls/opengl32/make_opengl
dlls/opengl32/opengl32.spec generated
dlls/opengl32/thunks.c generated
dlls/opengl32/unix_thunks.c generated
dlls/opengl32/unixlib.h generated
include/wine/wgl.h generated
include/wine/wgl_driver.h generated
# generated by dlls/winevulkan/make_vulkan
dlls/vulkan-1/vulkan-1.spec generated
dlls/winevulkan/loader_thunks.c generated
dlls/winevulkan/loader_thunks.h generated
dlls/winevulkan/vulkan_thunks.c generated
dlls/winevulkan/vulkan_thunks.h generated
dlls/winevulkan/winevulkan.json generated
dlls/winevulkan/winevulkan.spec generated
include/wine/vulkan.h generated
include/wine/vulkan_driver.h generated
# generated by tools/make_requests
include/wine/server_protocol.h generated
server/request_handlers.h generated
server/request_trace.h generated
# generated by tools/make_specfiles
dlls/ntdll/ntsyscalls.h generated
dlls/win32u/win32syscalls.h generated
# generated by tools/make_unicode
dlls/dwrite/bracket.c generated
dlls/dwrite/direction.c generated
dlls/dwrite/linebreak.c generated
dlls/dwrite/mirror.c generated
dlls/dwrite/scripts.c generated
dlls/dwrite/scripts.h generated
dlls/dwrite/shapers/arabic_table.c generated
dlls/gdi32/uniscribe/bracket.c generated
dlls/gdi32/uniscribe/direction.c generated
dlls/gdi32/uniscribe/indicsyllable.c generated
dlls/gdi32/uniscribe/linebreak.c generated
dlls/gdi32/uniscribe/mirror.c generated
dlls/gdi32/uniscribe/shaping.c generated
dlls/kernelbase/kernelbase.rgs generated
dlls/tzres/tzres.rc generated
dlls/win32u/vertical.c generated
dlls/wineps.drv/direction.c generated
dlls/wineps.drv/vertical.c generated
nls/*.nls generated
# main Gitlab CI script
stages:
- image
- build
- test
- deploy
include:
- local: "/tools/gitlab/image.yml"
- local: "/tools/gitlab/build.yml"
- local: "/tools/gitlab/test.yml"
- local: "/tools/gitlab/release.yml"
Adam Sacarny <magicbox@bestweb.net>
Albert den Haan <albertd@corel.ca>
Alexander Nicolaysen Sørnes <alex@thehandofagony.com>
Alexander Nicolaysen Sørnes <alexsornes@gmail.com>
Alexandru Balut <alexandru.balut@gmail.com>
Américo José Melo <mmodem00@gmail.com>
András Kovács <andras@csevego.net>
Andreas Rosenberg <andreas.rosenberg@apis.de>
Andrew Johnston <johnstonam@logica.com>
Antonio Codazzi <f_sophia@libero.it>
Bang Jun-Young <junyoung@mogua.com>
Bernhard Rosenkränzer <bero@lindev.ch>
Bernhard Übelacker <bernhardu@mailbox.org>
Byeong-Sik Jeon <bsjeon@hanmail.net>
Carlos Lozano <clozano@andago.com>
Caron Wills <caron@codeweavers.com>
Charles Davis <cdavis@codeweavers.com>
Charles Davis <cdavis5x@gmail.com>
Christopher Gautier <krys@via.ecp.fr>
David A. Cuthbert <dacut@ece.cmu.edu>
David Heidelberg <david@ixit.cz>
Dennis Björklund <db@zigo.dhs.org>
Dennis Björklund <dennisb@cs.chalmers.se>
Dimitrie O. Paun <dimi@bigfoot.com>
Dimitrie O. Paun <dimi@lattica.com>
EA Durbin <eadurbin@freebsd.org>
Eduardo García <eduardo.garcia@gmx.com>
Elizabeth Figura <z.figura12@gmail.com>
Elizabeth Figura <zfigura@codeweavers.com>
Erich Hoover <erich.e.hoover@gmail.com>
Erich Hoover <erich.e.hoover@wine-staging.com>
Erwin Wolff <erwinwolffnl@microformatica.com>
Esme Povirk <vincent@codeweavers.com>
Evgeny Putin <evcalipt@etersoft.ru>
Fan WenJie <fanwj@mail.ustc.edu.cn>
Fatih Aşıcı <fasici@linux-sevenler.org>
Fernando Martins <fernando@cmartins.nl>
François Gouget <fgouget@codeweavers.com>
François Gouget <fgouget@free.fr>
François Gouget <fgouget@multimania.com>
François Gouget <fgouget@psn.net>
Gerhard W. Gruber <sparhawk@gmx.at>
Gerold Jens Wucherpfennig <gjwucherpfennig@gmx.net>
Ge van Geldorp <ggeldorp@vmware.com>
Gregory M. Turner <gmturner007@ameritech.net>
Gustavo Noronha Silva <kov@debian.org>
Guy Albertelli <galberte@neo.lrun.com>
Guy Albertelli <guy@codeweavers.com>
György 'Nog' Jeney <nog@sdf.lonestar.org>
Henri Verbeet <hverbeet@gmail.com>
Hermès Bélusca-Maïto <hermes.belusca@sfr.fr>
Hervé Chanal <chanal_herve@yahoo.fr>
Hirofumi Katayama <katayama.hirofumi.mz@gmail.com>
Hiroshi Tanabe <hirokun_dayomon@infoseek.to>
Huw D. M. Davies <daviesh@abacus.physics.ox.ac.uk>
Huw D. M. Davies <daviesh@huw-davies-computer.local>
Huw D. M. Davies <h.davies1@physics.ox.ac.uk>
Huw D. M. Davies <h.davies@codeweavers.com>
Huw D. M. Davies <hdavies@codeweavers.com>
Huw D. M. Davies <hdavies@codeweavwers.com>
Huw D. M. Davies <huw@codewavers.com>
Huw D. M. Davies <huw@codeweavers>
Huw D. M. Davies <huw@codeweavers.com>
Hwang YunSong (황윤성) <hys545@dreamwiz.com>
Ivan de Saedeleer <Ivands@sympatico.ca>
Ivan Leo Puoti <ivanleo@gmail.com>
Ivan Leo Puoti <puoti@inwind.it>
Ivan Sinitsin <ivan@etersoft.ru>
J A Gow <J.A.Gow@furrybubble.co.uk>
Jan Djarv <Jan.Djarv@mbox200.swipnet.se>
Jason Edmeades <jason@edmeades.me.uk>
Jean Labrousse <jlabrous@altern.org>
Jeff Latimer <jeffl@defcen.gov.au>
Jérôme Gardou <jerome.gardou@gmail.com>
John Klehm <cjohn@klehm.net>
John R. Sheets <jsheets@codeweavers.com>
Jörg Höhle <Joerg-Cyril.Hoehle@t-systems.com>
Jörg Mayer <jmayer@loplof.de>
Jörg Mayer <jmayer@telesun2.telemation.de>
Jose Marcos López Caravaca <jose.lopez@upcnet.upc.es>
Joshua Thielen <thielen@netprince.net>
Józef Kucia <joseph.kucia@gmail.com>
Julio César Gázquez <jgazquez@dld.net>
Kevin Puetz <PuetzKevinA@JohnDeere.com>
Kirill K. Smirnov <Kirill.K.Smirnov@star.math.spbu.ru>
Kirill K. Smirnov <kirill.k.smirnov@gmail.com>
Kolbjørn Fredheim <hightower@tregt.net>
Lawson Whitney <lawson_whitney@juno.com>
Lionel Debroux <Lionel_Debroux@pc-debroux>
Louis Lenders <xerox_xerox2000@yahoo.co.uk>
Lucas Fialho Zawacki <lfzawacki@gmail.com>
Luis Carlos Busquets Pérez <luis.busquets@ilidium.com>
Luis Carlos Busquets Pérez <luiscar2001@yahoo.es>
Mariusz Pluciński <vshader@gmail.com>
Mark G. Adams <mark@transgaming.com>
Markus Gömmel <m.goemmel@compulab.de>
Martin Storsjö <martin@martin.st>
Matej Špindler <matej.spindler@gmail.com>
Matej Špindler <spindler.matej@gmail.com>
Matthew Finnicum <mattfinn@gmail.com>
Maxime Bellengé <maxime.bellenge@gmail.com>
Max TenEyck Woodbury <max@mtew.isa-geek.net>
Michael McCormack <mike@codeweavers.com>
Michael McCormack <mike_mccormack@looksmart.com.au>
Michael McCormack <mike_mccormack@start.com.au>
Michael McCormack <mikem@codeweavers.com>
Michael Müller <michael@fds-team.de>
Michael Veksler <mveksler@techunix.technion.ac.il>
Michael Wetherell <mike.wetherell@ntlworld.com>
Mikołaj Zalewski <mikolajz@google.com>
Mounir Idrassi <mounir.idrassi@idrix.fr>
Nathan Gallaher <ngallaher@deepthought.org>
Nathan Zorich <wfilardo@fuse.net>
Niclas Karlsson <nkarlsso@ra.abo.fi>
Nicolas Brouard <nicolas.brouard@libertysurf.fr>
Norman Stevens <norman@arcady.u-net.com>
Oldřich Jedlička <oldium.pro@seznam.cz>
Ove Kåven <ovehk@ping.uio.no>
Ove Kåven <ovek@arcticnet.no>
Ove Kåven <ovek@transgaming.com>
Panagiotis Christeas <p_christ@hol.gr>
Peter Ganten <peter@ganten.org>
Piotr Pawłow <pp@siedziba.pl>
Qingdoa Daoo <qingdao33122@yahoo.com>
Ragnvald Maartmann-Moe IV <despair@adelphia.net>
Reece H. Dunn <msclrhd@gmail.com>
Reece H. Dunn <msclrhd@googlemail.com>
Robert 'Admiral' Coeyman <admiral@corner.net>
Robert Riggs <rriggs@tesser.com>
Robert Shearman <rob@codeweavers.com>
Robert Shearman <robertshearman@gmail.com>
Roman Pišl <rpisl@seznam.cz>
Sato Kazuyuki <kazus@sunfish.suginami.tokyo.jp>
Sergei Ivanov <sergei@corel.ca>
Sergei Ivanov <sergei@corel.com>
Sergey Turchanov <plumber@print.vlad.ru>
Sergey Turchanov <turchanov@otvprim.ru>
Sergey Turchanov <turchanov@usa.net>
Stefan Dösinger <stefan@codeweavers.com>
Stephan Beuze <fbiggun@hotmail.com>
Stéphane Loeuillet <leroutier@gmail.com>
Stephen Langasek <vorlon@dodds.net>
Sunil Mohan Adapa <sunilmohan@fsf.org.in>
Sylvain St-Germain <sylvain@macadamian.com>
Sylvain St-Germain <sylvain@macadamian.com.epfl.ch>
Thomas Spear <speeddymon@gmail.com>
Thomas Weidenmüller <info@w3seek.de>
Thomas Weidenmüller <thomas@reactsoft.com>
Thomas Weidenmüller <w3seek@reactos.com>
Thomas Weidenmüller <w3seek@reactos.org>
Thomas Weidenmüller <wine-patches@reactsoft.com>
Tomasz Jezierski <developers@tefnet.pl>
Victor Martinez Calvo <vmartinez@reactos.org>
Vikram Kumar <vik@zone81.com>
Vladimir Bespalov <vlad.botanic@gmail.com>
Wei Xie <xiewei@linuxdeepin.com>
William Poetra Yoga Hadisoesen <williampoetra@yahoo.com>
Won Kyu Park <wkpark@kldp.org>
Yuri Kozlov <yuriy.kozlov@gmail.com>
Zachary Brown <zac@zacbrown.org>
Zoltan Nagy <nagyzoli@drotposta.hu>
unidentified <9700584@cs.stadia.fi>
unidentified <develop@stueben.com>
unidentified <f.gockel@t-online.de>
unidentified <ghutchis@cisco.com>
unidentified <hamish_nospam@yahoo.com>
unidentified <jimregan@litsu.ie>
unidentified <jodaman@cegt201.bradley.edu>
unidentified <larstiq@larstiq.dyndns.org>
unidentified <ma@technoprint.ch>
unidentified <mirq@ziemniak.ustronie.pw.edu.pl>
unidentified <o112w8r02@sneakemail.com>
unidentified <orin@pinhead.cc>
unidentified <pofis@portugalmail.pt>
unidentified <smil@mechatronika.hu>
unidentified <therapy@endorphin.org>
unidentified <TTarrant@Etnoteam.It>
unidentified <wine@frotz.org>
unidentified <wine@gc2.kloepfer.org>
unidentified <wine.larry.engholm@xoxy.net>
unidentified <zombi82@hot.ee>
This is release 970914 of Wine, the MS Windows emulator. This is still a
developer's only release. There are many bugs and many unimplemented API
features. Most applications still do not work correctly.
Patches should be submitted to "julliard@lrc.epfl.ch". Please don't
forget to include a ChangeLog entry.
WHAT'S NEW with Wine-970914: (see ChangeLog for details)
- Better resource handling.
- New Progress control.
- Improved PE module support.
- Many relay code changes.
- Lots of bug fixes.
See the README file in the distribution for installation instructions.
Because of lags created by using mirror, this message may reach you before
the release is available at the ftp sites. The sources will be available
from the following locations:
ftp://sunsite.unc.edu/pub/Linux/ALPHA/wine/development/Wine-970914.tar.gz
ftp://tsx-11.mit.edu/pub/linux/ALPHA/Wine/development/Wine-970914.tar.gz
ftp://ftp.infomagic.com/pub/mirrors/linux/wine/development/Wine-970914.tar.gz
ftp://ftp.progsoc.uts.edu.au/pub/Wine/development/Wine-970914.tar.gz
It should also be available from any site that mirrors tsx-11 or sunsite.
If you submitted a patch, please check to make sure it has been
included in the new release.
If you want to get the new releases faster, you can subscribe to the
wine-patches mailing list by sending a mail containing 'subscribe
wine-patches your_address' to majordomo@tiger.informatik.hu-berlin.de.
Wine is available thanks to the work of many people. See the file
AUTHORS in the distribution for the complete list.
--
Alexandre Julliard
julliard@lrc.epfl.ch
The Wine team is proud to announce that the stable release Wine 10.0
is now available.
This release represents a year of development effort and over 6,000
individual changes. It contains a large number of improvements that
are listed below. The main highlights are the new ARM64EC
architecture and the high-DPI scaling support.
The source is available at <https://dl.winehq.org/wine/source/10.0/wine-10.0.tar.xz>
Binary packages for various distributions will be available
from the respective [download sites][1].
You will find documentation [here][2].
Wine is available thanks to the work of many people.
See the file [AUTHORS][3] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/wikis/Download
[2]: https://gitlab.winehq.org/wine/wine/-/wikis/Documentation
[3]: https://gitlab.winehq.org/wine/wine/-/raw/wine-10.0/AUTHORS
## What's new in Wine 10.0
### ARM64
- The ARM64EC architecture is fully supported, with feature parity with the
ARM64 support.
- Hybrid ARM64X modules are fully supported. This allows mixing ARM64EC and
plain ARM64 code into a single binary. All of Wine can be built as ARM64X
by passing the `--enable-archs=arm64ec,aarch64` option to configure. This
still requires an experimental LLVM toolchain, but it is expected that the
upcoming LLVM 20 release will be able to build ARM64X Wine out of the box.
- The 64-bit x86 emulation interface is implemented. This takes advantage of
the ARM64EC support to run all of the Wine code as native, with only the
application's x86-64 code requiring emulation.
No emulation library is provided with Wine at this point, but an external
library that exports the emulation interface can be used, by specifying
its name in the `HKLM\Software\Microsoft\Wow64\amd64` registry key. The
[FEX emulator][4] implements this interface when built as ARM64EC.
- It should be noted that ARM64 support requires the system page size to be
4K, since that is what the Windows ABI specifies. Running on kernels with
16K or 64K pages is not supported at this point.
[4]: https://fex-emu.com
### Graphics
- High-DPI support is implemented more accurately, and non-DPI aware windows
are scaled automatically, instead of exposing high-DPI sizes to
applications that don't expect it.
- Compatibility flags are implemented to override high-DPI support, either
per-application or globally in the prefix.
- Vulkan child window rendering is supported with the X11 backend, for
applications that need 3D rendering on child windows. This was supported
with OpenGL already, and the Vulkan support is now on par.
- The Vulkan driver supports up to version 1.4.303 of the Vulkan spec. It
also supports the Vulkan Video extensions.
- Font linking is supported in GdiPlus.
### Desktop integration
- A new opt-in modesetting emulation mechanism is available. It is very
experimental still, but can be used to force display mode changes to be
fully emulated, instead of actually changing the display settings.
The windows are being padded and scaled if necessary to fit in the
physical display, as if the monitor resolution were changed, but no actual
modesetting is requested, improving user experience.
- A new Desktop Control Panel applet `desk.cpl` is provided, to inspect and
modify the display configuration. It can be used as well to change the
virtual desktop resolution, or to control the new emulated display
settings.
- Display settings are restored to the default if a process crashes without
restoring them properly.
- System tray icons can be completely disabled by setting `NoTrayItemsDisplay=1`
in the `HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer`
key.
- Shell launchers can be disabled in desktop mode by setting `NoDesktop=1`
in the `HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer`
key.
### Direct3D
- The GL renderer now requires GLSL 1.20, `EXT_framebuffer_object`, and
`ARB_texture_non_power_of_two`. The legacy ARB shader backend is no longer
available, and the `OffscreenRenderingMode` setting has been removed.
- Shader stencil export is implemented for the GL and Vulkan renderers.
- A HLSL-based fixed function pipeline for Direct3D 9 and earlier is
available, providing support for fixed function emulation for the Vulkan
renderer. It can also be used for the GL renderer, by setting the D3D
setting `ffp_hlsl` to a nonzero value using the registry or the
`WINE_D3D_CONFIG` environment variable.
- The Vulkan renderer uses several dynamic state extensions, if available,
with the goal of reducing stuttering in games.
- An alternative GLSL shader backend using vkd3d-shader is now available,
and can be selected by setting the D3D setting `shader_backend` to
`glsl-vkd3d`. Current vkd3d-shader GLSL support is incomplete relative to
the built-in GLSL shader backend, but is being actively developed.
### Direct3D helper libraries
- Initial support for compiling Direct3D effects is implemented using
vkd3d-shader.
- D3DX 9 supports many more bump-map and palettized formats.
- D3DX 9 supports saving palettized surfaces to DDS files.
- D3DX 9 supports mipmap generation when loading volume texture files.
- D3DX 9 supports reading 48-bit and 64-bit PNG files.
### Wayland driver
- The Wayland graphics driver is enabled by default, but the X11 driver
still takes precedence if both are available. To force using the Wayland
driver in that case, make sure that the `DISPLAY` environment variable is
unset.
- Popup windows should be positioned correctly in most cases.
- OpenGL is supported.
- Key auto-repeat is implemented.
### Multimedia
- A new opt-in FFmpeg-based backend is introduced, as an alternative to the
GStreamer backend. It is intended to improve compatibility with Media
Foundation pipelines. It is still in experimental stage though, and more
work will be needed, especially for D3D-aware playback. It can be enabled
by setting the value `DisableGstByteStreamHandler=1` in the
`HKCU\Software\Wine\MediaFoundation` registry key.
- Media Foundation multimedia pipelines are more accurately implemented, for
the many applications that depend on the individual demuxing and decoding
components to be exposed. Topology resolution with demuxer and decoder
creation and auto-plugging is improved.
- DirectMusic supports loading MIDI files.
### Input / HID devices
- Raw HID devices with multiple top-level collections are correctly parsed,
and exposed as individual devices to Windows application.
- Touchscreen input and events are supported with the X11 backend, and basic
multi-touch support through the `WM_POINTER` messages is
implemented. Mouse window messages such as `WM_LBUTTON*`, `WM_RBUTTON*`,
and `WM_MOUSEMOVE` are also generated from the primary touch events.
- A number of USER32 internal structures are stored in shared memory, to
improve performance and reduce Wine server load by avoiding server
round-trips.
- An initial version of a Bluetooth driver is implemented, with some basic
functionality.
- The Joystick Control Panel applet `joy.cpl` enables toggling some advanced
settings.
- The Dvorak keyboard layout is properly supported.
### Internationalization
- Locale data is generated from the Unicode CLDR database version 46. The
following additional locales are supported: `kaa-UZ`, `lld-IT`, `ltg-LV`,
and `mhn-IT`.
- Unicode character tables are based on version 16.0.0 of the Unicode
Standard.
- The timezone data is based on version 2024a of the IANA timezone database.
### Internet and networking
- The JavaScript engine supports a new object binding interface, used by
MSHTML to expose its objects in a standard-compliant mode. This eliminates
the distinction between JavaScript objects and host objects within the
engine, allowing scripts greater flexibility when interacting with MSHTML
objects.
- Built-in MSHTML functions are proper JavaScript function objects, and
other properties use accessor functions where appropriate.
- MSHTML supports prototype and constructor objects for its built-in
objects.
- Function objects in legacy MSHTML mode support the `call` and `apply`
methods.
- The JavaScript garbage collector operates globally across all script
contexts within a thread, improving its accuracy.
- JavaScript ArrayBuffer and DataView objects are supported.
### RPC / COM
- RPC/COM calls are fully supported on ARM platforms, including features
such as stubless proxies and the typelib marshaler.
- All generated COM proxies use the fully-interpreted marshaling mode on all
platforms.
### C runtime
- C++ exceptions and Run-Time Type Information (RTTI) are supported on ARM
platforms.
- The ANSI functions in the C runtime support the UTF-8 codepage.
### Kernel
- Process elevation is implemented, meaning that processes run as a normal
user by default but can be elevated to administrator access when required.
- Disk labels are retrieved from DBus when possible instead of accessing the
raw device.
- Mailslots are implemented directly in the Wine server instead of using a
socketpair, to allow supporting the full Windows semantics.
- Asynchronous waits for serial port events are reimplemented. The previous
implementation was broken by the PE separation work in Wine 9.0.
- The full processor XState is supported in thread contexts, enabling
support for newer vector extensions like AVX-512.
### macOS
- When building with Xcode >= 15.3 on macOS, the preloader is no longer
needed.
- Syscall emulation for applications doing direct NT syscalls is supported
on macOS Sonoma and later.
### Builtin applications
- The input parser of the Command Prompt tool `cmd` is rewritten, which
fixes a number of long-standing issues, particularly with variable
expansion, command chaining, and FOR loops.
- The Wine Debugger `winedbg` uses the Capstone library to enable
disassembly on all supported CPU types.
- The File Comparison tool `fc` supports comparing files with default
options.
- The `findstr` application supports regular expressions and case
insensitive search.
- The `regsvr32` and `rundll32` applications can register ARM64EC modules.
- The `sort` application is implemented.
- The `where` application supports searching files with default options.
- The `wmic` application supports an interactive mode.
### Miscellaneous
- The ODBC library supports loading Windows ODBC drivers, in addition to
Unix drivers that were already supported through libodbc.so.
- Optimal Asymmetric Encryption Padding (OAEP) is supported for RSA
encryption.
- Network sessions are supported in DirectPlay.
### Development tools
- The IDL compiler generates correct format strings in interpreted stubs
mode (`/Oicf` in midl.exe) on all platforms. Interpreted mode is now the
default, the old mixed-mode stub generation can be selected with `widl
-Os`.
- The IDL compiler can generate typelibs in the old SLTG format with the
`--oldtlb` command-line option.
- The `winegcc` and `winebuild` tools can create hybrid ARM64X modules with
the `-marm64x` option.
- The `winedump` tool supports dumping minidump tables, C++ exception data,
CLR tables, and typelib resources.
### Build infrastructure
- The `makedep` tool generates a standard-format `compile_commands.json`
file that can be used with various IDEs.
- Using `.def` files as import libraries with `winegcc` is no longer
supported, all import libraries need to be in the standard `.a` format. If
necessary, it is possible to convert a `.def` library to `.a` format using
`winebuild --implib -E libfoo.def -o libfoo.a`.
- Static analysis is supported using the Clang Static Analyzer. It can be
enabled by passing the `--enable-sast` option to configure. This is used
to present Code Quality reports with the Gitlab CI.
### Bundled libraries
- The Capstone library version 5.0.3 is bundled and used for disassembly
support in the Wine Debugger, to enable disassembly of ARM64 code. This
replaces the bundled Zydis library, which has been removed.
- Vkd3d is updated to the upstream release [1.14][5].
- Faudio is updated to the upstream release 24.10.
- FluidSynth is updated to the upstream release 2.4.0.
- LDAP is updated to the upstream release 2.5.18.
- LCMS2 is updated to the upstream release 2.16.
- LibJpeg is updated to the upstream release 9f.
- LibMPG123 is updated to the upstream release 1.32.9.
- LibPng is updated to the upstream release 1.6.44.
- LibTiff is updated to the upstream release 4.7.0.
- LibXml2 is updated to the upstream release 2.12.8.
- LibXslt is updated to the upstream release 1.1.42.
- Zlib is updated to the upstream release 1.3.1.
[5]: https://gitlab.winehq.org/wine/vkd3d/-/releases/vkd3d-1.14
### External dependencies
- The FFmpeg libraries are used to implement the new Media Foundation
backend.
- A PE cross-compiler is required for 32-bit ARM builds, pure ELF builds are
no longer supported (this was already the case for 64-bit ARM).
- Libunwind is no longer used on ARM platforms since they are built as
PE. It's only used on x86-64.
This diff is collapsed.
This is intended to be a place where you should look first if
you want to contribute to Wine development. Add your e-mail
address to the corresponding entry if you are working on/have
done something for one of the problems. You are encouraged to
add new entries and, more importantly, remove those for the
bugs you fixed ;-)
------------------------------------------------------------
As of Sept 1997 -
General:
* LoadAccelerators() must not create any objects apart
from loading the resource.
* Catch/Throw() do not save SI and DI registers (quite fatal).
* We need to do InsertMenuItem32[AW] and then code most of the other
inserting function in terms of this. Without this, we cannot support
all the new extended menus. Not hard, but slightly big.
* TrueType, .FON rasterizer.
* No thread/process scheduling support in Win32 code.
* Very alpha printing code. [john@division.co.uk]
* Extremely alpha Win95 interface code.
* No OLE2 and OLE32 support (including OLE2 interfaces etc.).
* No MS Video support (perhaps interface with xanim, don't hold
your breath for this one).
* COMDLG32 support not complete yet.
* No COMMCTRL/COMCTL32 support.
* No manual pages describing the various Windows calls.
- You can find information about most of the Win32 API calls
on the www.microsoft.com (go to 'search').
Miscellaneous:
* nBytesWidth in CURSORICONINFO is bogus for some bpp
(doesn't reflect the fact that bits are packed and 16-bit aligned).
* Progman and AOL complain about being unable to convert bitmaps
(probably because of bytes width stuff).
* Netscape displays partially downloaded inline graphics with
wrong offsets. Bitmap is missing in the splash-window.
* BCW 4.5 crashes after SwitchStackBack().
* Text alignment problems in Word and Write (variable pitch fonts).
* Font mapper weights
* "Cursor XXXX has more than 1 bpp!"
* Margins in edit controls are too wide.
* SGI window manager treats Wine windows as topmost.
* Write shows blank space instead of Paintbrush OLE1 object ( GetDIBits()? ).
* AllocCSToDSAlias() shouldn't alloc alias for the same segment multiple
times.
Where to look in source files:
* grep for FIXME in the source files.
This diff is collapsed.
This diff is collapsed.
This is intended to be a document to help new developers get started.
Existing developers should feel free to add their comments.
SOURCE TREE STRUCTURE
=====================
Source tree is loosely based on the original Windows modules. Most
directories are shared between the binary emulator and the library.
Shared directories:
-------------------
KERNEL:
files/ - file I/O
loader/ - Win16-, Win32-binary loader
memory/ - memory management
msdos/ - DOS and BIOS emulation
scheduler/ - process and thread management
GDI:
graphics/ - graphics drivers
graphics/x11drv/ - X11 display driver
graphics/metafiledrv/ - metafile driver
objects/ - logical objects
USER:
controls/ - built-in widgets
resources/ - built-in dialog resources
windows/ - window management
Miscellaneous:
misc/ - shell, registry, winsock, etc...
multimedia/ - multimedia driver
ipc/ - SysV IPC management
win32/ - misc Win32 functions
Tools:
rc/ - resource compiler
tools/ - relay code builder + misc tools
documentation/ - some documentation
Emulator-specific directories:
------------------------------
debugger/ - built-in debugger
if1632/ - relay code
miscemu/ - hardware instruction emulation
graphics/win16drv/ - Win16 printer driver
Winelib-specific directories:
-----------------------------
library/ - Winelib-specific routines (should disappear)
programs/ - utilities (Progman, WinHelp)
libtest/ - Winelib test samples
MEMORY AND SEGMENTS
===================
NE (Win16) executables consist of multiple segments. The Wine loader
loads each segment into a unique location in the Wine processes memory
and assigns a selector to that segment. Because of this, it's not
possible to exchange addresses freely between 16-bit and 32-bit code.
Addresses used by 16-bit code are segmented addresses (16:16), formed
by a 16-bit selector and a 16-bit offset. Those used by the Wine code
are regular 32-bit linear addresses.
There are four ways to obtain a segmented pointer:
- Use the SEGPTR_* macros in include/heap.h (recommended).
- Allocate a block of memory from the global heap and use
WIN16_GlobalLock to get its segmented address.
- Allocate a block of memory from a local heap, and build the
segmented address from the local heap selector (see the
USER_HEAP_* macros for an example of this).
- Declare the argument as 'segptr' instead of 'ptr' in the spec file
for a given API function.
Once you have a segmented pointer, it must be converted to a linear
pointer before you can use it from 32-bit code. This can be done with
the PTR_SEG_TO_LIN() and PTR_SEG_OFF_TO_LIN() macros. The linear
pointer can then be used freely with standard Unix functions like
memcpy() etc. without worrying about 64k boundaries. Note: there's no
easy way to convert back from a linear to a segmented address.
In most cases, you don't need to worry about segmented address, as the
conversion is made automatically by the callback code and the API
functions only see linear addresses. However, in some cases it is
necessary to manipulate segmented addresses; the most frequent cases
are:
- API functions that return a pointer
- lParam of Windows messages that point to a structure
- Pointers contained inside structures accessed by 16-bit code.
It is usually a good practice to used the type 'SEGPTR' for segmented
pointers, instead of something like 'LPSTR' or 'char *'. As SEGPTR is
defined as a DWORD, you'll get a compilation warning if you mistakenly
use it as a regular 32-bit pointer.
STRUCTURE PACKING
=================
Under Windows, data structures are tightly packed, i.e. there is no
padding between structure members. On the other hand, by default gcc
aligns structure members (e.g. WORDs are on a WORD boundary, etc.).
This means that a structure like
struct { BYTE x; WORD y; };
will take 3 bytes under Windows, but 4 with gcc, because gcc will add a
dummy byte between x and y. To have the correct layout for structures
used by Windows code, you need to use the WINE_PACKED attribute; so you
would declare the above structure like this:
struct { BYTE x; WORD y WINE_PACKED; };
You have to do this every time a structure member is not aligned
correctly under Windows (i.e. a WORD not on an even address, or a
DWORD on a address that is not a multiple of 4).
NAMING CONVENTIONS FOR API FUNCTIONS AND TYPES
==============================================
In order to support both Win16 and Win32 APIs within the same source
code, as well as share the include files between the emulator and the
library, the following convention must be used in naming all API
functions and types. If the Windows API uses the name 'xxx', the Wine
code must use:
- 'xxx16' for the 16-bit version,
- 'xxx32' for the 32-bit version when no ASCII/Unicode strings are
involved,
- 'xxx32A' for the 32-bit version with ASCII strings,
- 'xxx32W' for the 32-bit version with Unicode strings.
You should then use the macros WINELIB_NAME[_AW](xxx) or
DECL_WINELIB_TYPE[_AW](xxx) (defined in include/wintypes.h) to define
the correct 'xxx' function or type for Winelib. When compiling the
emulator, 'xxx' is _not_ defined, meaning that you must always specify
explicitly whether you want the 16-bit or 32-bit version.
Note: if 'xxx' is the same in Win16 and Win32, you can simply use the
same name as Windows.
Examples:
typedef short INT16;
typedef int INT32;
DECL_WINELIB_TYPE(INT);
typedef struct { /* Win32 ASCII data structure */ } WNDCLASS32A;
typedef struct { /* Win32 Unicode data structure */ } WNDCLASS32W;
typedef struct { /* Win16 data structure */ } WNDCLASS16;
DECL_WINELIB_TYPE_AW(WNDCLASS);
ATOM RegisterClass16( WNDCLASS16 * );
ATOM RegisterClass32A( WNDCLASS32A * );
ATOM RegisterClass32W( WNDCLASS32W * );
#define RegisterClass WINELIB_NAME_AW(RegisterClass)
The Winelib user can then say:
INT i;
WNDCLASS wc = { ... };
RegisterClass( &wc );
and this will use the correct declaration depending on the definition
of the symbols WINELIB16, WINELIB32 and UNICODE.
API ENTRY POINTS
================
Because Win16 programs use a 16-bit stack and because they can only
call 16:16 addressed functions, all API entry points must be at low
address offsets and must have the arguments translated and moved to
Wines 32-bit stack. This task is handled by the code in the "if1632"
directory. To define a new API entry point handler you must place a
new entry in the appropriate API specification file. These files are
named *.spec. For example, the API specification file for the USER
DLL is contained in the file user.spec. These entries are processed
by the "build" program to create an assembly file containing the entry
point code for each API call. The format of the *.spec files is
documented in the file "tools/build-spec.txt".
DEBUG MESSAGES
==============
To display a message only during debugging, you normally write something
like this:
#ifdef DEBUG_WIN
printf("abc...");
#endif
You can write this shorter (and better) in this way:
dprintf_win(stddeb,"abc...");
All symbols of the form dprintf_xxxx are macros defined in include/debug.h .
The macro-definitions are generated by the shell-script tools/make_debug. It
scans the source code for symbols of this forms and puts the necessary
macro definitions in include/debug.h and include/stddebug.h . These macros
test for the symbol DEBUG_XXXX (e.g. dprintf_win refers to DEBUG_WIN) being
defined and thus decided whether to actually display the text. If you want
to enable specific types of messages, simply put the corresponding
#define DEBUG_XXXX in include/stddebug.h . If you want to enable or disable
a specific type of message in just one c-source-file, put the corresponding
#define DEBUG_XXXX or #undefine DEBUG_XXXX between #include<stddebug.h> and
#include <debug.h> in that specific file. In addition you can change the
types of displayed messages by supplying the "-debugmsg" option to Wine.
If your debugging code is more complex than just printf, you can use the
symbols debugging_XXX as well. These are true when XXX is enabled, either
permanent or in the command line. So instead of writing
#ifdef DEBUG_WIN
DumpSomeStructure(&str);
#endif
write
if(debugging_win)DumpSomeStructure(&str);
Don't worry about the inefficiency of the test. If it is permanently
disabled (thus debugging_win is 0 at compile time), the compiler will
eliminate the dead code.
The file handle "stddeb" is intended for displaying standard informational
messages, whereas "stdnimp" is intended for displaying messages concerning
not yet implemented functions.
You have to start tools/make_debug only if you introduced a new macro,
e.g. dprintf_win32s - not if you just changed one of the #define
DEBUG_XXX's in include/stddebug.h or in a specific file.
MORE INFO
=========
1. There is a FREE online version of the MSDN library (including
documentation for the Win32 API) on http://www.microsoft.com/msdn/
2. http://www.sonic.net/~undoc/bookstore.html
3. In 1993 Dr. Dobbs Journal published a column called "Undocumented Corner".
4. You might want to check out BYTE from December 1983 as well :-)
@c This file is processed by GNU's TeXinfo
@c If you modify it or move it to another location, make sure that
@c TeXinfo works (type `make' in directory documentation).
Copyright (c) 1993-2025 the Wine project authors (see the file AUTHORS
for a complete list)
@c This is the Wine copyright.
@c The Wine warranty is part of the license agreement.
@c READ THE FILE `WARRANTY' CAREFULLY FOR A STATEMENT ON THE WINE WARRANTY.
Wine is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by the
Free Software Foundation; either version 2.1 of the License, or (at
your option) any later version.
You may without charge, royalty or other payment, copy and
distribute copies of this work and derivative works of this work
in source or binary form provided that: (1)
you appropriately publish on each copy an appropriate copyright
notice; (2) faithfully reproduce all prior copyright notices
included in the original work (you may also add your own
copyright notice); and (3) agree to indemnify and hold all prior
authors, copyright holders and licensors of the work harmless
from and against all damages arising from use of the work.
You may distribute sources of derivative works of the work
provided that (1) (a) all source files of the original work that
have been modified, (b) all source files of the derivative work
that contain any party of the original work, and (c) all source
files of the derivative work that are necessary to compile, link
and run the derivative work without unresolved external calls and
with the same functionality of the original work (``Necessary
Sources'') carry a prominent notice explaining the nature and date
of the modification and/or creation. You are encouraged to make
the Necessary Sources available under this license in order to
further the development and acceptance of the work.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
A copy of the GNU Lesser General Public License is included in the
Wine distribution in the file COPYING.LIB. If you did not receive this
copy, write to the Free Software Foundation, Inc., 51 Franklin St,
Fifth Floor, Boston, MA 02110-1301, USA.
Note: Wine is now distributed under the terms of the GNU Lesser
General Public License, as specified in the file LICENSE.
Older releases of Wine, up to release 20020228, were distributed under
the following license:
Copyright (c) 1993-2002 the Wine project authors (see the file AUTHORS
for a complete list)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
List of Wine subsection maintainers
When submitting patches to Wine, the guidelines at
<https://gitlab.winehq.org/wine/wine/-/wikis/Submitting-Patches>
should be followed. This file contains a list of maintainers for
subsections of Wine. If you have questions about your work in an area
of Wine, you may find a list of knowledgeable people here.
Many areas of Wine don't have a specific maintainer, although there may
be people with knowledge of those areas. If an area is not listed here
at all, you can use the git log to find developers working in that area
recently. Or, you can send a mail to wine-devel, but be aware that there
may simply be no one knowledgeable about that subject on the list.
This file uses a similar format to the Linux kernel MAINTAINERS file.
Descriptions of section entries used here:
M: Primary maintainer. FullName <address@domain>
P: Other knowledgeable person. FullName <address@domain>
F: Files and directories with wildcard patterns.
One pattern per line. Multiple F: lines acceptable.
A trailing / implies /*.
W: Link to additional information.
Maintainers List
-----------------------------------
ARM, ARM64
M: Alexandre Julliard <julliard@winehq.org>
P: André Zwing <nerv@dawncrow.de>
F: dlls/dbghelp/cpu_arm*
F: dlls/msvcrt/except_arm.c
F: dlls/ntdll/signal_arm*
F: programs/winedbg/be_arm*
Audio I/O
P: Huw Davies <huw@codeweavers.com>
F: dlls/dsound/
F: dlls/mmdevapi/
F: dlls/winealsa.drv/
F: dlls/winecoreaudio.drv/
F: dlls/wineoss.drv/
F: dlls/winepulse.drv/
F: dlls/winmm/
F: dlls/x3daudio*/
F: dlls/xapofx*/
F: dlls/xaudio*/
Bluetooth support
M: Vibhav Pant <vibhavp@gmail.com>
F: dlls/winebth.sys/
F: dlls/bluetoothapis/sdp.c
Common Controls Library
P: Nikolay Sivov <nsivov@codeweavers.com>
P: Zhiyi Zhang <zzhang@codeweavers.com>
F: dlls/comctl32/
Common Item Dialog
P: Esme Povirk <esme@codeweavers.com>
F: dlls/comdlg32/itemdlg.c
F: dlls/comdlg32/tests/itemdlg.c
Direct2D
M: Nikolay Sivov <nsivov@codeweavers.com>
P: Henri Verbeet <hverbeet@codeweavers.com>
F: dlls/d2d*/
Direct3D
M: Elizabeth Figura <zfigura@codeweavers.com>
M: Jan Sikorski <jsikorski@codeweavers.com>
P: Henri Verbeet <hverbeet@codeweavers.com>
P: Stefan Dösinger <stefan@codeweavers.com>
P: Matteo Bruni <mbruni@codeweavers.com>
F: dlls/d3d10core/
F: dlls/d3d11/
F: dlls/d3d12/
F: dlls/d3d12core/
F: dlls/d3d8/
F: dlls/d3d9/
F: dlls/d3drm/
F: dlls/ddraw*/
F: dlls/dxgi/
F: dlls/wined3d/
Direct3D helper libraries
M: Matteo Bruni <mbruni@codeweavers.com>
P: Henri Verbeet <hverbeet@codeweavers.com>
P: Stefan Dösinger <stefan@codeweavers.com>
F: dlls/d3d10/
F: dlls/d3d10_1/
F: dlls/d3dcompiler*/
F: dlls/d3dx10*/
F: dlls/d3dx11*/
F: dlls/d3dx9*/
F: dlls/d3dxof/
DirectMusic
M: Michael Stefaniuc <mstefani@winehq.org>
F: dlls/dm*/
F: dlls/dswave/
DirectPlay
M: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
F: dlls/dplayx/
F: dlls/dpnet/
F: dlls/dpwsockx/
DirectShow
M: Elizabeth Figura <zfigura@codeweavers.com>
P: Rémi Bernon <rbernon@codeweavers.com>
F: dlls/amstream/
F: dlls/devenum/
F: dlls/mciqtz32/
F: dlls/qasf/
F: dlls/qcap/
F: dlls/qdvd/
F: dlls/qedit/
F: dlls/quartz/
F: libs/strmbase/
DirectWrite
M: Nikolay Sivov <nsivov@codeweavers.com>
F: dlls/dwrite/
DotNet Runtime
M: Esme Povirk <esme@codeweavers.com>
F: dlls/mscoree/
GDI
M: Huw Davies <huw@codeweavers.com>
F: dlls/gdi32/
F: dlls/win32u/bitblt.c
F: dlls/win32u/bitmap.c
F: dlls/win32u/brush.c
F: dlls/win32u/clipping.c
F: dlls/win32u/dc.c
F: dlls/win32u/dib.c
F: dlls/win32u/dibdrv/
F: dlls/win32u/driver.c
F: dlls/win32u/emfdrv.c
F: dlls/win32u/font.c
F: dlls/win32u/freetype.c
F: dlls/win32u/gdiobj.c
F: dlls/win32u/mapping.c
F: dlls/win32u/opentype.c
F: dlls/win32u/painting.c
F: dlls/win32u/palette.c
F: dlls/win32u/path.c
F: dlls/win32u/pen.c
F: dlls/win32u/printdrv.c
F: dlls/win32u/region.c
GDIPlus
M: Esme Povirk <esme@codeweavers.com>
F: dlls/gdiplus/
GPhoto Driver
M: Marcus Meissner <marcus@jet.franken.de>
F: dlls/gphoto2.ds/
GStreamer multimedia backend
P: Elizabeth Figura <zfigura@codeweavers.com>
P: Rémi Bernon <rbernon@codeweavers.com>
F: dlls/winegstreamer/
HID support
M: Rémi Bernon <rbernon@codeweavers.com>
P: Aric Stewart <aric@codeweavers.com>
F: dlls/hid/
F: dlls/hidclass.sys/
F: dlls/hidparse.sys/
F: dlls/mouhid.sys/
F: dlls/winehid.sys/
HTTP server
M: Elizabeth Figura <zfigura@codeweavers.com>
F: dlls/httpapi/
F: dlls/http.sys/
Input events
M: Rémi Bernon <rbernon@codeweavers.com>
F: dlls/user32/input.c
F: dlls/win32u/input.c
F: dlls/win32u/rawinput.c
F: server/queue.c
Input methods
M: Rémi Bernon <rbernon@codeweavers.com>
P: Aric Stewart <aric@codeweavers.com>
F: dlls/imm32/
F: dlls/win32u/imm.c
F: dlls/winemac.drv/ime.c
F: dlls/winex11.drv/ime.c
JavaScript
M: Jacek Caban <jacek@codeweavers.com>
F: dlls/jscript/
Joystick input
M: Rémi Bernon <rbernon@codeweavers.com>
F: dlls/dinput*/
F: dlls/joy.cpl/
F: dlls/windows.gaming.input/
F: dlls/winebus.sys/
F: dlls/winexinput.sys/
F: dlls/winmm/joystick.c
F: dlls/xinput*/
Microsoft C Runtime
M: Piotr Caban <piotr@codeweavers.com>
F: dlls/concrt140/
F: dlls/msvc*/
F: dlls/ucrtbase/
F: dlls/vcruntime140/
F: dlls/vcruntime140_1/
MSI installers
M: Hans Leidekker <hans@codeweavers.com>
P: Elizabeth Figura <zfigura@codeweavers.com>
F: dlls/msi/
Netstat
M: André Zwing <nerv@dawncrow.de>
F: programs/netstat/
Network
P: Bruno Jesus <00cpxxx@gmail.com>
P: Erich E. Hoover <erich.e.hoover@wine-staging.com>
F: dlls/ws2_32/
Network Store Interface
M: Huw Davies <huw@codeweavers.com>
F: dlls/iphlpapi/
F: dlls/nsi/
F: dlls/nsiproxy.sys/
F: include/wine/nsi.h
OLE Embedding
M: Huw Davies <huw@codeweavers.com>
F: dlls/ole32/clipboard.c
F: dlls/ole32/datacache.c
F: dlls/ole32/defaulthandler.c
F: dlls/ole32/ole2.c
F: dlls/ole32/ole2impl.c
F: dlls/ole32/oleobj.c
OLE RPC
M: Huw Davies <huw@codeweavers.com>
F: dlls/combase/
F: dlls/ole32/compobj.c
F: dlls/ole32/marshal.c
F: dlls/ole32/usrmarshal.c
F: programs/dllhost/
OLE Storage
M: Esme Povirk <esme@codeweavers.com>
F: dlls/ole32/filelockbytes.c
F: dlls/ole32/memlockbytes.c
F: dlls/ole32/stg_stream.c
F: dlls/ole32/storage32.c
F: dlls/ole32/storage32.h
F: dlls/ole32/tests/storage32.c
OLE Typelibs
P: Huw Davies <huw@codeweavers.com>
F: dlls/oleaut32/typelib.c
Plug and Play
P: Elizabeth Figura <zfigura@codeweavers.com>
F: dlls/newdev/
F: dlls/ntoskrnl.exe/pnp.c
F: dlls/setupapi/devinst.c
Postscript Driver
M: Huw Davies <huw@codeweavers.com>
F: dlls/wineps.drv/
Printing
M: Huw Davies <huw@codeweavers.com>
P: Detlef Riekenberg <wine.dev@web.de>
F: dlls/localspl/
F: dlls/spoolss/
F: dlls/winspool.drv/
Richedit
M: Huw Davies <huw@codeweavers.com>
F: dlls/riched20/
RPC Runtime
P: Huw Davies <huw@codeweavers.com>
P: Elizabeth Figura <zfigura@codeweavers.com>
F: dlls/rpcrt4/
Theming
M: Zhiyi Zhang <zzhang@codeweavers.com>
F: dlls/light.msstyles/
F: dlls/uxtheme/
TWAIN
P: Esme Povirk <esme@codeweavers.com>
F: dlls/twain_32/
F: dlls/sane.ds/
F: dlls/gphoto2.ds/
Uniscribe
M: Aric Stewart <aric@codeweavers.com>
F: dlls/gdi32/uniscribe/
URL Moniker
M: Jacek Caban <jacek@codeweavers.com>
F: dlls/urlmon/
VBScript
M: Jacek Caban <jacek@codeweavers.com>
F: dlls/vbscript/
Web Services
M: Hans Leidekker <hans@codeweavers.com>
F: dlls/webservices/
WebBrowser control
M: Jacek Caban <jacek@codeweavers.com>
F: dlls/ieframe/
F: dlls/mshtml/
WIDL
P: Huw Davies <huw@codeweavers.com>
P: Rémi Bernon <rbernon@codeweavers.com>
P: Elizabeth Figura <zfigura@codeweavers.com>
F: tools/widl/
Windows Imaging Component
M: Esme Povirk <esme@codeweavers.com>
F: dlls/windowscodecs/
F: dlls/windowscodecsext/
F: dlls/wmphoto/
Windows Management Instrumentation
M: Hans Leidekker <hans@codeweavers.com>
F: dlls/wbemdisp/
F: dlls/wbemprox/
F: dlls/wmiutils/
Windows Media Format
M: Elizabeth Figura <zfigura@codeweavers.com>
P: Rémi Bernon <rbernon@codeweavers.com>
F: dlls/wmp/
F: dlls/wmvcore/
Windows Media Foundation
M: Nikolay Sivov <nsivov@codeweavers.com>
P: Rémi Bernon <rbernon@codeweavers.com>
F: dlls/evr/
F: dlls/mf/
F: dlls/mferror/
F: dlls/mfmediaengine/
F: dlls/mfplat/
F: dlls/mfplay/
F: dlls/mfreadwrite/
F: dlls/mfuuid/
F: dlls/rtworkq/
Wine debugger (GDB backend)
P: Rémi Bernon <rbernon@codeweavers.com>
F: programs/winedbg/gdbproxy.c
Wine server, IPC
M: Alexandre Julliard <julliard@winehq.org>
P: Erich E. Hoover <erich.e.hoover@wine-staging.com>
F: server/
Winemaker
M: André Zwing <nerv@dawncrow.de>
F: tools/winemaker/
WinHTTP
M: Hans Leidekker <hans@codeweavers.com>
F: dlls/winhttp/
WinINet
P: Jacek Caban <jacek@codeweavers.com>
F: dlls/wininet/
X11 Driver
M: Alexandre Julliard <julliard@winehq.org>
P: Rémi Bernon <rbernon@codeweavers.com>
P: Zhiyi Zhang <zzhang@codeweavers.com>
F: dlls/winex11.drv/
XML parsing
M: Nikolay Sivov <nsivov@codeweavers.com>
F: dlls/msxml*/
F: dlls/xmllite/
THE REST
M: Alexandre Julliard <julliard@winehq.org>
P: Alex Henrie <alexhenrie24@gmail.com>
P: Huw Davies <huw@codeweavers.com>
P: Jacek Caban <jacek@codeweavers.com>
P: Esme Povirk <esme@codeweavers.com>
P: Erich E. Hoover <erich.e.hoover@wine-staging.com>
F: *
F: */
Stable Branch
M: Michael Stefaniuc <mstefani@winehq.org>
W: https://gitlab.winehq.org/wine/wine/-/wikis/Stable-Rules
Staging Branch
M: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
P: Elizabeth Figura <zfigura@codeweavers.com>
P: Paul Gofman <gofmanp@gmail.com>
P: Erich E. Hoover <erich.e.hoover@wine-staging.com>
W: https://wine-staging.com/
# Global rules shared by all makefiles -*-Makefile-*-
#
# Each individual makefile should define the following variables:
# TOPSRCDIR : top-level source directory
# TOPOBJDIR : top-level object directory
# SRCDIR : source directory for this module
# MODULE : name of the module being built
# C_SRCS : C sources for the module (optional)
# GEN_C_SRCS : generated C sources (optional)
# ASM_SRCS : assembly sources (optional)
# GEN_ASM_SRCS : generated assembly sources (optional)
# EXTRA_OBJS : extra object files (optional)
# First some useful definitions
SHELL = /bin/sh
CC = @CC@
CPP = @CPP@
CFLAGS = @CFLAGS@
OPTIONS = @OPTIONS@
X_CFLAGS = @X_CFLAGS@
X_LIBS = @X_LIBS@
XPM_LIB = -lXpm
XLIB = @X_PRE_LIBS@ -lXext -lX11 @X_EXTRA_LIBS@
WINELIB = $(WINESTUB) $(TOPOBJDIR)/@MAIN_TARGET@
LDLIBS = @LDLIBS@
YACC = @YACC@
LEX = @LEX@
LEXLIB = @LEXLIB@
RANLIB = @RANLIB@
LN_S = @LN_S@
DIVINCL = -I$(TOPSRCDIR)/include -I$(TOPOBJDIR)/include -I$(SRCDIR) -I.
ALLCFLAGS = $(CFLAGS) $(DEFS) $(OPTIONS) $(DIVINCL) $(X_CFLAGS)
LDCOMBINE = ld -r
AR = ar rc
RM = rm -f
MKDIR = mkdir
BUILD = $(TOPOBJDIR)/tools/build@PROGEXT@
MAKEDEP = $(TOPOBJDIR)/tools/makedep@PROGEXT@
WINERC = $(TOPOBJDIR)/rc/winerc@PROGEXT@
WINESTUB = $(TOPOBJDIR)/library/winestub.o
SUBMAKE = $(MAKE) 'CC=$(CC)' 'CFLAGS=$(CFLAGS)' 'OPTIONS=$(OPTIONS)'
@SET_MAKE@
# Installation infos
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@/man1
manext = .1
includedir = @includedir@/wine
OBJS = $(GEN_C_SRCS:.c=.o) $(C_SRCS:.c=.o) \
$(GEN_ASM_SRCS:.s=.o) $(ASM_SRCS:.S=.o) $(EXTRA_OBJS)
# Implicit rules
.SUFFIXES: .rc
.c.o:
$(CC) -c $(ALLCFLAGS) -o $*.o $<
.s.o:
$(CC) -c -o $*.o $<
.S.o:
$(CC) -c -o $*.o $<
.rc.c:
echo "#include \"windows.h\"" >winerctmp.c
echo WINDOWS_H_ENDS_HERE >>winerctmp.c
cat $< >>winerctmp.c
$(CPP) $(DEFS) $(OPTIONS) $(DIVINCL) -DRC_INVOKED -P winerctmp.c | sed -e '1,/^WINDOWS_H_ENDS_HERE/d' | $(WINERC) $(RCFLAGS) -c -o $* -p $*
$(RM) winerctmp.c
.rc.h:
echo "#include \"windows.h\"" >winerctmp.c
echo WINDOWS_H_ENDS_HERE >>winerctmp.c
cat $< >>winerctmp.c
$(CPP) $(DEFS) $(OPTIONS) $(DIVINCL) -DRC_INVOKED -P winerctmp.c | sed -e '1,/^WINDOWS_H_ENDS_HERE/d' | $(WINERC) $(RCFLAGS) -c -o $* -p $*
$(RM) winerctmp.c
# Rule to rebuild resource compiler
$(WINERC) check_winerc:
cd $(TOPOBJDIR)/rc; $(SUBMAKE) winerc@PROGEXT@
# Rule to rebuild the 'makedep' program
$(MAKEDEP) check_makedep:
cd $(TOPOBJDIR)/tools; $(SUBMAKE) makedep@PROGEXT@
# Rule to rebuild the 'build' program
$(BUILD) checkbuild:
cd $(TOPOBJDIR)/tools; $(SUBMAKE) build@PROGEXT@
# Rule for main module
$(MODULE).o: $(OBJS)
$(LDCOMBINE) $(OBJS) -o $(MODULE).o
# Misc. rules
depend:: $(MAKEDEP) $(C_SRCS) $(GEN_C_SRCS)
$(MAKEDEP) $(DIVINCL) -C. $(GEN_C_SRCS) -C$(SRCDIR) $(C_SRCS)
clean::
$(RM) *.o \#*\# *~ *.bak *.orig *.rej *.flc winerctmp.c core $(GEN_C_SRCS) $(GEN_C_SRCS:.c=.h) $(GEN_ASM_SRCS) $(PROGRAMS)
dummy:
# End of global rules
# This Makefile understands the following targets:
#
# all (default): build wine
# clean: remove all intermediate files
# distclean: also remove all files created by configure
# install: install everything
# depend: create the dependencies
# etags: create a TAGS file for Emacs.
#
# Main target to build
MAIN_TARGET = @MAIN_TARGET@
# Directories
TOPSRCDIR = @top_srcdir@
TOPOBJDIR = .
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = none
COMMONSUBDIRS = \
rc \
controls \
files \
graphics \
graphics/metafiledrv \
graphics/x11drv \
ipc \
loader \
memory \
misc \
msdos \
multimedia \
objects \
resources \
scheduler \
win32 \
windows
EMUSUBDIRS = \
tools \
debugger \
graphics/win16drv \
if1632 \
miscemu
LIBSUBDIRS = library
PROGSUBDIRS = libtest programs
DOCSUBDIRS = documentation
# All sub-directories
ALLSUBDIRS = \
$(COMMONSUBDIRS) \
$(EMUSUBDIRS) \
$(LIBSUBDIRS) \
$(PROGSUBDIRS) \
$(DOCSUBDIRS)
# Sub-directories to run make depend into
DEPENDSUBDIRS = $(COMMONSUBDIRS) $(LIBSUBDIRS) $(EMUSUBDIRS) $(DOCSUBDIRS)
# Sub-directories to run make install into
INSTALLSUBDIRS = $(DOCSUBDIRS)
COMMONOBJS = \
controls/controls.o \
files/files.o \
graphics/graphics.o \
graphics/metafiledrv/metafiledrv.o \
graphics/x11drv/x11drv.o \
ipc/ipc.o \
loader/loader.o \
memory/memory.o \
misc/misc.o \
msdos/msdos.o \
multimedia/multimedia.o \
objects/objects.o \
resources/resources.o \
scheduler/scheduler.o \
win32/win32.o \
windows/windows.o
EMUOBJS = \
debugger/debugger.o \
graphics/win16drv/win16drv.o \
if1632/if1632.o \
miscemu/miscemu.o
LIBOBJS = library/library.o
all: $(MAIN_TARGET)
@MAKE_RULES@
install:: install_$(MAIN_TARGET)
wine wine.sym: $(COMMONSUBDIRS) $(EMUSUBDIRS) dummy
$(CC) -o wine $(COMMONOBJS) $(EMUOBJS) $(LDOPTIONS) $(X_LIBS) $(XPM_LIB) $(XLIB) $(LDLIBS)
nm -n wine | grep -v _compiled >wine.sym
install_wine: dummy
$(INSTALL_PROGRAM) wine $(bindir)/wine
libwine.a: $(COMMONSUBDIRS) $(LIBSUBDIRS) dummy
$(RM) $@
$(AR) $@ $(COMMONOBJS) $(LIBOBJS)
$(RANLIB) $@
install_libwine.a: install_includes
$(INSTALL_DATA) libwine.a $(libdir)
libwine.so.1.0: $(COMMONSUBDIRS) $(LIBSUBDIRS) dummy
$(CC) -shared -Wl,-soname,libwine.so -o$@ $(COMMONOBJS) $(LIBOBJS) $(LDOPTIONS) $(X_LIBS) $(XPM_LIB) $(XLIB) $(LDLIBS)
install_libwine.so.1.0: install_includes
$(INSTALL_DATA) libwine.so.1.0 $(libdir)
install_includes: dummy
if [ -d $(includedir) ]; then : ; else $(MKDIR) $(includedir); fi
cd include; $(INSTALL_DATA) windows.h wintypes.h $(includedir)
$(ALLSUBDIRS): dummy
@cd $@; $(SUBMAKE)
install_programs: dummy
@cd programs; $(SUBMAKE) install
install::
for i in $(INSTALLSUBDIRS); do (cd $$i && $(MAKE) install) || exit 1; done
depend:: dummy
for i in $(DEPENDSUBDIRS); do (cd $$i && $(MAKE) depend) || exit 1; done
TAGS etags:
etags `find $(TOPSRCDIR) -name '*.[chS]' -print | grep -v dbgmain`
clean::
for i in $(ALLSUBDIRS); do (cd $$i; $(MAKE) clean) || exit 1; done
for i in include; do (cd $$i; $(RM) *.o \#*\# *~ *.bak *.orig *.rej *.flc); done
$(RM) wine wine.sym libwine.a libwine.so.1.0 TAGS
distclean: clean
$(RM) config.* Make.rules include/config.h
$(RM) `find . \( -name Makefile -o -size 0 \) -print`
configure: configure.in
autoconf
include/config.h.in: configure.in include/acconfig.h
autoheader -l include
### Dependencies:
1. INTRODUCTION
Wine is a program that allows running MS-Windows programs under X11.
It consists of a program loader, that loads and executes an
MS-Windows binary, and of an emulation library that translates Windows
API calls to their Unix/X11 equivalent.
Wine is free software. See the file LICENSE for the details.
Basically, you can do anything with it, except claim that you wrote it.
2. COMPILATION
You must have one of:
Linux version 0.99.13 or above
NetBSD-current
FreeBSD-current or FreeBSD 1.1
OpenBSD/i386 2.1 or later
You also need to have libXpm installed on your system. The sources for
it are probably available on the ftp site where you got Wine. They can
also be found on ftp.x.org and all its mirror sites.
To build Wine, first do a "./configure" and then a "make depend; make".
The executable "wine" will be built. "wine" will load and run 16-bit
Windows executables.
To build Winelib, do a "./configure --with-library", and then a "make
depend; make". The library "winelib.a" will be built, allowing to
compile Windows source code under Unix. If you have an ELF compiler,
you can use "./configure --with-dll" instead to build a shared library.
To upgrade to a new release by using a patch file, first cd to the
top-level directory of the release (the one containing this README
file). Then do a "make clean", and patch the release with:
gunzip -c patch-file | patch -p1
where "patch-file" is the name of the patch file (something like
Wine-yymmdd.diff.gz). You can then re-run "./configure", and then
run "make depend; make".
3. SETUP
Once Wine has been built correctly, you can do "make install"; this
will install the wine executable and the man page.
Wine requires you to have a file /usr/local/etc/wine.conf (you can
supply a different name when configuring wine) or a file called .winerc
in your home directory.
The format of this file is explained in the man page. The file
wine.ini contains a config file example.
4. RUNNING PROGRAMS
When invoking Wine, you must specify the entire path to the executable,
or a filename only.
For example: to run Windows' solitaire:
wine sol (using the searchpath to locate the file)
wine sol.exe
wine c:\\windows\\sol.exe (using a dosfilename)
wine /usr/windows/sol.exe (using a unixfilename)
Note: the path of the file will also be added to the path when
a full name is supplied on the commandline.
Have a nice game of solitaire, but be careful. Emulation isn't perfect.
So, occasionally it may crash.
UPDATE: Windows 95 components are known to cause more crashes compared
to the equivalent Windows 3.1 libraries.
5. GETTING MORE INFORMATION
The best place to get help or to report bugs is the Usenet newsgroup
comp.emulators.ms-windows.wine. The Wine FAQ is posted there every
month. Also, you may want to browse old messages on www.dejanews.com
to check whether your problem is already fixed.
If you add something, or fix a bug, please send a patch ('diff -u'
format preferred) to julliard@lrc.epfl.ch for inclusion in the next
release.
--
Alexandre Julliard
julliard@lrc.epfl.ch
## INTRODUCTION
Wine is a program which allows running Microsoft Windows programs
(including DOS, Windows 3.x, Win32, and Win64 executables) on Unix.
It consists of a program loader which loads and executes a Microsoft
Windows binary, and a library (called Winelib) that implements Windows
API calls using their Unix, X11 or Mac equivalents. The library may also
be used for porting Windows code into native Unix executables.
Wine is free software, released under the GNU LGPL; see the file
LICENSE for the details.
## QUICK START
From the top-level directory of the Wine source (which contains this file),
run:
```
./configure
make
```
Then either install Wine:
```
make install
```
Or run Wine directly from the build directory:
```
./wine notepad
```
Run programs as `wine program`. For more information and problem
resolution, read the rest of this file, the Wine man page, and
especially the wealth of information found at https://www.winehq.org.
## REQUIREMENTS
To compile and run Wine, you must have one of the following:
- Linux version 2.6.22 or later
- FreeBSD 12.4 or later
- Solaris x86 9 or later
- NetBSD-current
- Mac OS X 10.12 or later
As Wine requires kernel-level thread support to run, only the operating
systems mentioned above are supported. Other operating systems which
support kernel threads may be supported in the future.
**FreeBSD info**:
See https://wiki.freebsd.org/Wine for more information.
**Solaris info**:
You will most likely need to build Wine with the GNU toolchain
(gcc, gas, etc.). Warning : installing gas does *not* ensure that it
will be used by gcc. Recompiling gcc after installing gas or
symlinking cc, as and ld to the gnu tools is said to be necessary.
**NetBSD info**:
Make sure you have the USER_LDT, SYSVSHM, SYSVSEM, and SYSVMSG options
turned on in your kernel.
**Mac OS X info**:
You need Xcode/Xcode Command Line Tools or Apple cctools. The
minimum requirements for compiling Wine are clang 3.8 with the
MacOSX10.10.sdk and mingw-w64 v8. The MacOSX10.14.sdk and later can
only build wine64.
**Supported file systems**:
Wine should run on most file systems. A few compatibility problems
have also been reported using files accessed through Samba. Also,
NTFS does not provide all the file system features needed by some
applications. Using a native Unix file system is recommended.
**Basic requirements**:
You need to have the X11 development include files installed
(called xorg-dev in Debian and libX11-devel in Red Hat).
Of course you also need make (most likely GNU make).
You also need flex version 2.5.33 or later and bison.
**Optional support libraries**:
Configure will display notices when optional libraries are not found
on your system. See https://gitlab.winehq.org/wine/wine/-/wikis/Building-Wine
for hints about the packages you should install. On 64-bit
platforms, you have to make sure to install the 32-bit versions of
these libraries.
## COMPILATION
To build Wine, do:
```
./configure
make
```
This will build the program "wine" and numerous support libraries/binaries.
The program "wine" will load and run Windows executables.
The library "libwine" ("Winelib") can be used to compile and link
Windows source code under Unix.
To see compile configuration options, do `./configure --help`.
For more information, see https://gitlab.winehq.org/wine/wine/-/wikis/Building-Wine
## SETUP
Once Wine has been built correctly, you can do `make install`; this
will install the wine executable and libraries, the Wine man page, and
other needed files.
Don't forget to uninstall any conflicting previous Wine installation
first. Try either `dpkg -r wine` or `rpm -e wine` or `make uninstall`
before installing.
Once installed, you can run the `winecfg` configuration tool. See the
Support area at https://www.winehq.org/ for configuration hints.
## RUNNING PROGRAMS
When invoking Wine, you may specify the entire path to the executable,
or a filename only.
For example, to run Notepad:
```
wine notepad (using the search Path as specified in
wine notepad.exe the registry to locate the file)
wine c:\\windows\\notepad.exe (using DOS filename syntax)
wine ~/.wine/drive_c/windows/notepad.exe (using Unix filename syntax)
wine notepad.exe readme.txt (calling program with parameters)
```
Wine is not perfect, so some programs may crash. If that happens you
will get a crash log that you should attach to your report when filing
a bug.
## GETTING MORE INFORMATION
- **WWW**: A great deal of information about Wine is available from WineHQ at
https://www.winehq.org/ : various Wine Guides, application database,
bug tracking. This is probably the best starting point.
- **FAQ**: The Wine FAQ is located at https://gitlab.winehq.org/wine/wine/-/wikis/FAQ
- **Wiki**: The Wine Wiki is located at https://gitlab.winehq.org/wine/wine/-/wikis/
- **Gitlab**: Wine development is hosted at https://gitlab.winehq.org
- **Mailing lists**:
There are several mailing lists for Wine users and developers; see
https://gitlab.winehq.org/wine/wine/-/wikis/Forums for more
information.
- **Bugs**: Report bugs to Wine Bugzilla at https://bugs.winehq.org
Please search the bugzilla database to check whether your
problem is already known or fixed before posting a bug report.
- **IRC**: Online help is available at channel `#WineHQ` on irc.libera.chat.
This file contains information about the current release of Wine.
If you are new to Wine, read the files ANNOUNCE and README and the FAQ
list first.
If you want to contribute code to Wine, read the DEVELOPER-HINTS. The
primary source of information to developers is the ChangeLog (next to
the source, of course).
1. BAR.EXE used to work, but does not work anymore
Look at the ChangeLog to see what files have been changed. Try to undo
the particular patch and go partially back to the previous version. If
you have any suspicions, report them to the author or to the newsgroup.
Wine version 10.0