From 8b822b8a2664edaaf4598caecd02c340d7d8137c Mon Sep 17 00:00:00 2001 From: "KJK::Hyperion" Date: Mon, 10 Nov 2008 02:31:24 +0000 Subject: [PATCH] =?UTF-8?q?Hopefully,=20the=20definitive=20spec=20files=20?= =?UTF-8?q?commit.=20Dedicated=20to=20Samuel=20Serapi=C3=B3n,=20who=20repo?= =?UTF-8?q?rted=20issues=20with=20my=20previous=20commits.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit modified tools/rbuild/backend/mingw/modulehandler.cpp Specifying .spec/.pspec files twice ( and ) didn't really make sense (stubs are unusable without the .def and viceversa), so they can now be only specified in . I'd rather drop completely and specify .def/.spec/.pspec as s, but it's too hard so it'll have to wait. At least we got rid of one invocation of the preprocessor for .pspec files Simplified and improved rules to generate spec and stub files from .pspec Did you know we set the wrong DLL name in autogenerated .def files? Always pass the right name to winebuild with --filename, just to be sure Fully support compiling .pspec/.spec files from the intermediate directory Import libraries don't actually depend on stub/thunk files modified tools/rbuild/backend/mingw/modulehandler.h Removed some dead code modified tools/rbuild/backend/mingw/rule.cpp modified tools/rbuild/module.cpp modified tools/rbuild/rbuild.h Allow in all module types. Why? Why not? modified Makefile Added ECHO_CPP to echo invocations of the C preprocessor Everything else: removed all entries for .spec/.pspec files. It was just maintenance overhead svn path=/trunk/; revision=37270 --- reactos/Makefile | 2 + reactos/dll/directx/msdmo/msdmo.rbuild | 1 - reactos/dll/directx/quartz/quartz.rbuild | 1 - reactos/dll/directx/wine/d3d9/d3d9.rbuild | 1 - reactos/dll/win32/atl/atl.rbuild | 1 - reactos/dll/win32/browseui/browseui.rbuild | 1 - reactos/dll/win32/cabinet/cabinet.rbuild | 1 - reactos/dll/win32/clusapi/clusapi.rbuild | 1 - reactos/dll/win32/comctl32/comctl32.rbuild | 1 - reactos/dll/win32/comdlg32/comdlg32.rbuild | 1 - reactos/dll/win32/credui/credui.rbuild | 1 - reactos/dll/win32/crypt32/crypt32.rbuild | 1 - reactos/dll/win32/cryptdll/cryptdll.rbuild | 1 - reactos/dll/win32/cryptnet/cryptnet.rbuild | 1 - reactos/dll/win32/cryptui/cryptui.rbuild | 1 - reactos/dll/win32/dbghelp/dbghelp.rbuild | 1 - reactos/dll/win32/dciman32/dciman32.rbuild | 1 - reactos/dll/win32/devmgr/devmgr.rbuild | 1 - reactos/dll/win32/dhcpcsvc/dhcpcsvc.rbuild | 1 - reactos/dll/win32/fusion/fusion.rbuild | 1 - reactos/dll/win32/gdiplus/gdiplus.rbuild | 1 - reactos/dll/win32/hlink/hlink.rbuild | 1 - reactos/dll/win32/icmp/icmp.rbuild | 1 - reactos/dll/win32/imagehlp/imagehlp.rbuild | 1 - reactos/dll/win32/imm32/imm32.rbuild | 1 - reactos/dll/win32/inetcomm/inetcomm.rbuild | 1 - reactos/dll/win32/inetmib1/inetmib1.rbuild | 1 - reactos/dll/win32/iphlpapi/iphlpapi.rbuild | 1 - reactos/dll/win32/mapi32/mapi32.rbuild | 1 - reactos/dll/win32/mlang/mlang.rbuild | 1 - reactos/dll/win32/modemui/modemui.rbuild | 1 - reactos/dll/win32/mpr/mpr.rbuild | 1 - reactos/dll/win32/mprapi/mprapi.rbuild | 1 - reactos/dll/win32/msacm32/msacm32.rbuild | 1 - reactos/dll/win32/mscoree/mscoree.rbuild | 1 - reactos/dll/win32/msgina/msgina.rbuild | 1 - reactos/dll/win32/mshtml/mshtml.rbuild | 1 - reactos/dll/win32/msi/msi.rbuild | 1 - reactos/dll/win32/mstask/mstask.rbuild | 1 - reactos/dll/win32/msvcrt20/msvcrt20.rbuild | 1 - reactos/dll/win32/msvcrt40/msvcrt40.rbuild | 1 - reactos/dll/win32/msvfw32/msvfw32.rbuild | 1 - reactos/dll/win32/msxml3/msxml3.rbuild | 1 - reactos/dll/win32/nddeapi/nddeapi.rbuild | 1 - reactos/dll/win32/netapi32/netapi32.rbuild | 1 - reactos/dll/win32/netcfgx/netcfgx.rbuild | 1 - reactos/dll/win32/netshell/netshell.rbuild | 1 - reactos/dll/win32/newdev/newdev.rbuild | 1 - reactos/dll/win32/ntdsapi/ntdsapi.rbuild | 1 - reactos/dll/win32/odbc32/odbc32.rbuild | 1 - reactos/dll/win32/odbccp32/odbccp32.rbuild | 1 - reactos/dll/win32/ole32/ole32.rbuild | 1 - reactos/dll/win32/oleacc/oleacc.rbuild | 1 - reactos/dll/win32/oleaut32/oleaut32.rbuild | 1 - reactos/dll/win32/pdh/pdh.rbuild | 1 - reactos/dll/win32/printui/printui.rbuild | 1 - reactos/dll/win32/pstorec/pstorec.rbuild | 1 - reactos/dll/win32/rasapi32/rasapi32.rbuild | 1 - reactos/dll/win32/rasdlg/rasdlg.rbuild | 1 - reactos/dll/win32/rasman/rasman.rbuild | 1 - reactos/dll/win32/rpcrt4/rpcrt4.rbuild | 1 - reactos/dll/win32/schannel/schannel.rbuild | 1 - reactos/dll/win32/setupapi/setupapi.rbuild | 1 - reactos/dll/win32/sfc/sfc.rbuild | 1 - reactos/dll/win32/sfc_os/sfc_os.rbuild | 1 - reactos/dll/win32/shdocvw/shdocvw.rbuild | 1 - reactos/dll/win32/shell32/shell32.rbuild | 1 - reactos/dll/win32/shimgvw/shimgvw.rbuild | 1 - reactos/dll/win32/shlwapi/shlwapi.rbuild | 1 - reactos/dll/win32/sxs/sxs.rbuild | 1 - reactos/dll/win32/tapi32/tapi32.rbuild | 1 - reactos/dll/win32/urlmon/urlmon.rbuild | 1 - reactos/dll/win32/usp10/usp10.rbuild | 1 - reactos/dll/win32/uxtheme/uxtheme.rbuild | 1 - reactos/dll/win32/wininet/wininet.rbuild | 1 - reactos/dll/win32/winmm/winmm.rbuild | 1 - reactos/dll/win32/wintrust/wintrust.rbuild | 1 - reactos/dll/win32/wldap32/wldap32.rbuild | 1 - reactos/dll/win32/wtsapi32/wtsapi32.rbuild | 1 - reactos/drivers/usb/usbd/usbd.rbuild | 1 - .../displays/framebufacc/framebufacc.rbuild | 1 - .../rbuild/backend/mingw/modulehandler.cpp | 101 +++++++++--------- .../rbuild/backend/mingw/modulehandler.h | 2 - reactos/tools/rbuild/backend/mingw/rule.cpp | 1 + reactos/tools/rbuild/module.cpp | 10 ++ reactos/tools/rbuild/rbuild.h | 1 + 86 files changed, 64 insertions(+), 133 deletions(-) diff --git a/reactos/Makefile b/reactos/Makefile index 84b25040413..9660147d2cf 100644 --- a/reactos/Makefile +++ b/reactos/Makefile @@ -214,6 +214,7 @@ ifeq ($(HALFVERBOSEECHO),yes) ECHO_BUILDNO =@echo $(QUOTE)[BUILDNO] $@$(QUOTE) ECHO_INVOKE =@echo $(QUOTE)[INVOKE] $<$(QUOTE) ECHO_PCH =@echo $(QUOTE)[PCH] $@$(QUOTE) + ECHO_CPP =@echo $(QUOTE)[CPP] $@$(QUOTE) ECHO_CC =@echo $(QUOTE)[CC] $<$(QUOTE) ECHO_CL =@echo $(QUOTE)[CL] $<$(QUOTE) ECHO_GAS =@echo $(QUOTE)[GAS] $<$(QUOTE) @@ -246,6 +247,7 @@ else ECHO_BUILDNO = ECHO_INVOKE = ECHO_PCH = + ECHO_CPP = ECHO_CC = ECHO_GAS = ECHO_NASM = diff --git a/reactos/dll/directx/msdmo/msdmo.rbuild b/reactos/dll/directx/msdmo/msdmo.rbuild index 87c455a3405..1c57c75faed 100644 --- a/reactos/dll/directx/msdmo/msdmo.rbuild +++ b/reactos/dll/directx/msdmo/msdmo.rbuild @@ -9,6 +9,5 @@ ntdll msdmo.c msdmo.rc - msdmo.spec diff --git a/reactos/dll/directx/quartz/quartz.rbuild b/reactos/dll/directx/quartz/quartz.rbuild index c7027648ba1..381bf1d2d1a 100644 --- a/reactos/dll/directx/quartz/quartz.rbuild +++ b/reactos/dll/directx/quartz/quartz.rbuild @@ -47,6 +47,5 @@ control.c avisplit.c version.rc - quartz.spec \ No newline at end of file diff --git a/reactos/dll/directx/wine/d3d9/d3d9.rbuild b/reactos/dll/directx/wine/d3d9/d3d9.rbuild index 867df67cf03..c9b788d7938 100644 --- a/reactos/dll/directx/wine/d3d9/d3d9.rbuild +++ b/reactos/dll/directx/wine/d3d9/d3d9.rbuild @@ -35,5 +35,4 @@ volume.c volumetexture.c version.rc - d3d9.spec diff --git a/reactos/dll/win32/atl/atl.rbuild b/reactos/dll/win32/atl/atl.rbuild index cb88a00905c..e98915e4d72 100644 --- a/reactos/dll/win32/atl/atl.rbuild +++ b/reactos/dll/win32/atl/atl.rbuild @@ -13,7 +13,6 @@ registrar.c rsrc.rc . - atl.spec wine uuid ole32 diff --git a/reactos/dll/win32/browseui/browseui.rbuild b/reactos/dll/win32/browseui/browseui.rbuild index 4a417972175..881c743135c 100644 --- a/reactos/dll/win32/browseui/browseui.rbuild +++ b/reactos/dll/win32/browseui/browseui.rbuild @@ -21,5 +21,4 @@ browseui_main.c regsvr.c version.rc - browseui.spec diff --git a/reactos/dll/win32/cabinet/cabinet.rbuild b/reactos/dll/win32/cabinet/cabinet.rbuild index f37cbd32fa7..76322332efa 100644 --- a/reactos/dll/win32/cabinet/cabinet.rbuild +++ b/reactos/dll/win32/cabinet/cabinet.rbuild @@ -10,7 +10,6 @@ fci.c fdi.c cabinet.rc - cabinet.spec wine kernel32 ntdll diff --git a/reactos/dll/win32/clusapi/clusapi.rbuild b/reactos/dll/win32/clusapi/clusapi.rbuild index 83bb01777a0..5607268cf8d 100644 --- a/reactos/dll/win32/clusapi/clusapi.rbuild +++ b/reactos/dll/win32/clusapi/clusapi.rbuild @@ -9,5 +9,4 @@ kernel32 ntdll clusapi.c - clusapi.spec diff --git a/reactos/dll/win32/comctl32/comctl32.rbuild b/reactos/dll/win32/comctl32/comctl32.rbuild index 063cb874f22..3f133425df9 100644 --- a/reactos/dll/win32/comctl32/comctl32.rbuild +++ b/reactos/dll/win32/comctl32/comctl32.rbuild @@ -43,7 +43,6 @@ treeview.c updown.c rsrc.rc - comctl32.spec wine user32 gdi32 diff --git a/reactos/dll/win32/comdlg32/comdlg32.rbuild b/reactos/dll/win32/comdlg32/comdlg32.rbuild index 566faddc059..1d2285fe728 100644 --- a/reactos/dll/win32/comdlg32/comdlg32.rbuild +++ b/reactos/dll/win32/comdlg32/comdlg32.rbuild @@ -15,7 +15,6 @@ fontdlg.c printdlg.c rsrc.rc - comdlg32.spec wine uuid shell32 diff --git a/reactos/dll/win32/credui/credui.rbuild b/reactos/dll/win32/credui/credui.rbuild index 0ef5423d39c..79a559cbaa8 100644 --- a/reactos/dll/win32/credui/credui.rbuild +++ b/reactos/dll/win32/credui/credui.rbuild @@ -10,7 +10,6 @@ 0x600 credui_main.c credui.rc - credui.spec wine advapi32 user32 diff --git a/reactos/dll/win32/crypt32/crypt32.rbuild b/reactos/dll/win32/crypt32/crypt32.rbuild index c02a8ba981e..1c4eaab0001 100644 --- a/reactos/dll/win32/crypt32/crypt32.rbuild +++ b/reactos/dll/win32/crypt32/crypt32.rbuild @@ -35,5 +35,4 @@ ctl.c message.c crypt32.rc - crypt32.spec diff --git a/reactos/dll/win32/cryptdll/cryptdll.rbuild b/reactos/dll/win32/cryptdll/cryptdll.rbuild index b43fc9b0c4f..c5fe617d7cd 100644 --- a/reactos/dll/win32/cryptdll/cryptdll.rbuild +++ b/reactos/dll/win32/cryptdll/cryptdll.rbuild @@ -10,5 +10,4 @@ kernel32 ntdll cryptdll.c - cryptdll.spec diff --git a/reactos/dll/win32/cryptnet/cryptnet.rbuild b/reactos/dll/win32/cryptnet/cryptnet.rbuild index 08e26fe308b..f305e535b87 100644 --- a/reactos/dll/win32/cryptnet/cryptnet.rbuild +++ b/reactos/dll/win32/cryptnet/cryptnet.rbuild @@ -13,6 +13,5 @@ wininet ntdll cryptnet_main.c - cryptnet.spec diff --git a/reactos/dll/win32/cryptui/cryptui.rbuild b/reactos/dll/win32/cryptui/cryptui.rbuild index d6cc54788e2..4c557e21ce2 100644 --- a/reactos/dll/win32/cryptui/cryptui.rbuild +++ b/reactos/dll/win32/cryptui/cryptui.rbuild @@ -8,7 +8,6 @@ include/reactos/wine main.c - cryptui.spec wine kernel32 ntdll diff --git a/reactos/dll/win32/dbghelp/dbghelp.rbuild b/reactos/dll/win32/dbghelp/dbghelp.rbuild index 4b63919f918..ede50cb61e9 100644 --- a/reactos/dll/win32/dbghelp/dbghelp.rbuild +++ b/reactos/dll/win32/dbghelp/dbghelp.rbuild @@ -25,7 +25,6 @@ storage.c symbol.c type.c - dbghelp.spec wine psapi kernel32 diff --git a/reactos/dll/win32/dciman32/dciman32.rbuild b/reactos/dll/win32/dciman32/dciman32.rbuild index 38154e3114f..0b66c35a7b6 100644 --- a/reactos/dll/win32/dciman32/dciman32.rbuild +++ b/reactos/dll/win32/dciman32/dciman32.rbuild @@ -7,7 +7,6 @@ include/reactos/wine dciman_main.c - dciman32.spec wine kernel32 ntdll diff --git a/reactos/dll/win32/devmgr/devmgr.rbuild b/reactos/dll/win32/devmgr/devmgr.rbuild index 25f74e8df42..293ff1451c1 100644 --- a/reactos/dll/win32/devmgr/devmgr.rbuild +++ b/reactos/dll/win32/devmgr/devmgr.rbuild @@ -12,6 +12,5 @@ hwpage.c misc.c stubs.c - devmgr.spec precomp.h diff --git a/reactos/dll/win32/dhcpcsvc/dhcpcsvc.rbuild b/reactos/dll/win32/dhcpcsvc/dhcpcsvc.rbuild index 716259251f6..d664f66aea5 100644 --- a/reactos/dll/win32/dhcpcsvc/dhcpcsvc.rbuild +++ b/reactos/dll/win32/dhcpcsvc/dhcpcsvc.rbuild @@ -8,5 +8,4 @@ iphlpapi dhcpcsvc.c dhcpcsvc.rc - dhcpcsvc.spec diff --git a/reactos/dll/win32/fusion/fusion.rbuild b/reactos/dll/win32/fusion/fusion.rbuild index c0e9128c52d..bef97c68936 100644 --- a/reactos/dll/win32/fusion/fusion.rbuild +++ b/reactos/dll/win32/fusion/fusion.rbuild @@ -14,5 +14,4 @@ assembly.c fusion.c fusion_main.c - fusion.spec diff --git a/reactos/dll/win32/gdiplus/gdiplus.rbuild b/reactos/dll/win32/gdiplus/gdiplus.rbuild index 5d488f86d42..f8890964882 100644 --- a/reactos/dll/win32/gdiplus/gdiplus.rbuild +++ b/reactos/dll/win32/gdiplus/gdiplus.rbuild @@ -19,7 +19,6 @@ pen.c region.c stringformat.c - gdiplus.spec wine uuid shlwapi diff --git a/reactos/dll/win32/hlink/hlink.rbuild b/reactos/dll/win32/hlink/hlink.rbuild index 0b020802982..4d03b9de274 100644 --- a/reactos/dll/win32/hlink/hlink.rbuild +++ b/reactos/dll/win32/hlink/hlink.rbuild @@ -11,7 +11,6 @@ extserv.c hlink_main.c link.c - hlink.spec wine shell32 ole32 diff --git a/reactos/dll/win32/icmp/icmp.rbuild b/reactos/dll/win32/icmp/icmp.rbuild index 8da93de7a01..28c0bbfa90a 100644 --- a/reactos/dll/win32/icmp/icmp.rbuild +++ b/reactos/dll/win32/icmp/icmp.rbuild @@ -8,5 +8,4 @@ wine icmp_main.c icmp.rc - icmp.spec diff --git a/reactos/dll/win32/imagehlp/imagehlp.rbuild b/reactos/dll/win32/imagehlp/imagehlp.rbuild index 1abe0f839b8..79074245e4a 100644 --- a/reactos/dll/win32/imagehlp/imagehlp.rbuild +++ b/reactos/dll/win32/imagehlp/imagehlp.rbuild @@ -10,6 +10,5 @@ integrity.c modify.c imagehlp.rc - imagehlp.spec precomp.h diff --git a/reactos/dll/win32/imm32/imm32.rbuild b/reactos/dll/win32/imm32/imm32.rbuild index f6140f76ee0..c0cd3c67471 100644 --- a/reactos/dll/win32/imm32/imm32.rbuild +++ b/reactos/dll/win32/imm32/imm32.rbuild @@ -9,7 +9,6 @@ 0x600 imm.c version.rc - imm32.spec wine user32 gdi32 diff --git a/reactos/dll/win32/inetcomm/inetcomm.rbuild b/reactos/dll/win32/inetcomm/inetcomm.rbuild index 3178a195d46..e47321ffaa9 100644 --- a/reactos/dll/win32/inetcomm/inetcomm.rbuild +++ b/reactos/dll/win32/inetcomm/inetcomm.rbuild @@ -16,7 +16,6 @@ pop3transport.c regsvr.c smtptransport.c - inetcomm.spec wine uuid ole32 diff --git a/reactos/dll/win32/inetmib1/inetmib1.rbuild b/reactos/dll/win32/inetmib1/inetmib1.rbuild index becb511a21a..3176d30bc73 100644 --- a/reactos/dll/win32/inetmib1/inetmib1.rbuild +++ b/reactos/dll/win32/inetmib1/inetmib1.rbuild @@ -7,7 +7,6 @@ include/reactos/wine main.c - inetmib1.spec wine snmpapi kernel32 diff --git a/reactos/dll/win32/iphlpapi/iphlpapi.rbuild b/reactos/dll/win32/iphlpapi/iphlpapi.rbuild index 5acca9019ed..94b3d3126f8 100644 --- a/reactos/dll/win32/iphlpapi/iphlpapi.rbuild +++ b/reactos/dll/win32/iphlpapi/iphlpapi.rbuild @@ -17,5 +17,4 @@ resinfo_reactos.c route_reactos.c iphlpapi.rc - iphlpapi.spec diff --git a/reactos/dll/win32/mapi32/mapi32.rbuild b/reactos/dll/win32/mapi32/mapi32.rbuild index 503114e4182..39e527d1a8c 100644 --- a/reactos/dll/win32/mapi32/mapi32.rbuild +++ b/reactos/dll/win32/mapi32/mapi32.rbuild @@ -11,7 +11,6 @@ prop.c sendmail.c util.c - mapi32.spec wine shlwapi shell32 diff --git a/reactos/dll/win32/mlang/mlang.rbuild b/reactos/dll/win32/mlang/mlang.rbuild index 357b7b840b9..b53438c5ab9 100644 --- a/reactos/dll/win32/mlang/mlang.rbuild +++ b/reactos/dll/win32/mlang/mlang.rbuild @@ -10,7 +10,6 @@ 0x600 mlang.c regsvr.c - mlang.spec wine ole32 user32 diff --git a/reactos/dll/win32/modemui/modemui.rbuild b/reactos/dll/win32/modemui/modemui.rbuild index 1f9a1decbe4..f3500094f82 100644 --- a/reactos/dll/win32/modemui/modemui.rbuild +++ b/reactos/dll/win32/modemui/modemui.rbuild @@ -10,5 +10,4 @@ netapi32 modemui.c modemui.rc - modemui.spec diff --git a/reactos/dll/win32/mpr/mpr.rbuild b/reactos/dll/win32/mpr/mpr.rbuild index d73fa25e234..4f7b67ac1d1 100644 --- a/reactos/dll/win32/mpr/mpr.rbuild +++ b/reactos/dll/win32/mpr/mpr.rbuild @@ -13,7 +13,6 @@ pwcache.c wnet.c mpr.rc - mpr.spec wine user32 advapi32 diff --git a/reactos/dll/win32/mprapi/mprapi.rbuild b/reactos/dll/win32/mprapi/mprapi.rbuild index 6507d49d1a2..c6a9bfbc783 100644 --- a/reactos/dll/win32/mprapi/mprapi.rbuild +++ b/reactos/dll/win32/mprapi/mprapi.rbuild @@ -6,5 +6,4 @@ wine kernel32 mprapi.c - mprapi.spec diff --git a/reactos/dll/win32/msacm32/msacm32.rbuild b/reactos/dll/win32/msacm32/msacm32.rbuild index ccd2b01752e..dd2f8c3c4de 100644 --- a/reactos/dll/win32/msacm32/msacm32.rbuild +++ b/reactos/dll/win32/msacm32/msacm32.rbuild @@ -15,5 +15,4 @@ msacm32_main.c pcmconverter.c stream.c - msacm32.spec diff --git a/reactos/dll/win32/mscoree/mscoree.rbuild b/reactos/dll/win32/mscoree/mscoree.rbuild index 76726a3e57f..f10592da560 100644 --- a/reactos/dll/win32/mscoree/mscoree.rbuild +++ b/reactos/dll/win32/mscoree/mscoree.rbuild @@ -7,5 +7,4 @@ uuid corruntimehost.c mscoree_main.c - mscoree.spec diff --git a/reactos/dll/win32/msgina/msgina.rbuild b/reactos/dll/win32/msgina/msgina.rbuild index 951dc1c97e2..bb8049dde5f 100644 --- a/reactos/dll/win32/msgina/msgina.rbuild +++ b/reactos/dll/win32/msgina/msgina.rbuild @@ -14,5 +14,4 @@ stubs.c tui.c msgina.rc - msgina.spec diff --git a/reactos/dll/win32/mshtml/mshtml.rbuild b/reactos/dll/win32/mshtml/mshtml.rbuild index a50fba317ce..0853b793656 100644 --- a/reactos/dll/win32/mshtml/mshtml.rbuild +++ b/reactos/dll/win32/mshtml/mshtml.rbuild @@ -57,7 +57,6 @@ view.c rsrc.rc . - mshtml.spec wine strmiids uuid diff --git a/reactos/dll/win32/msi/msi.rbuild b/reactos/dll/win32/msi/msi.rbuild index 52b94462da2..08880b7adc6 100644 --- a/reactos/dll/win32/msi/msi.rbuild +++ b/reactos/dll/win32/msi/msi.rbuild @@ -52,7 +52,6 @@ where.c msi.rc . - msi.spec wine uuid urlmon diff --git a/reactos/dll/win32/mstask/mstask.rbuild b/reactos/dll/win32/mstask/mstask.rbuild index 02843751570..e2ed3c4a5cd 100644 --- a/reactos/dll/win32/mstask/mstask.rbuild +++ b/reactos/dll/win32/mstask/mstask.rbuild @@ -16,7 +16,6 @@ task_trigger.c mstask_local.idl rsrc.rc - mstask.spec wine uuid ole32 diff --git a/reactos/dll/win32/msvcrt20/msvcrt20.rbuild b/reactos/dll/win32/msvcrt20/msvcrt20.rbuild index c6e51ab78fa..fdf7e88f30e 100644 --- a/reactos/dll/win32/msvcrt20/msvcrt20.rbuild +++ b/reactos/dll/win32/msvcrt20/msvcrt20.rbuild @@ -7,7 +7,6 @@ include/reactos/wine msvcrt20.c - msvcrt20.spec wine msvcrt kernel32 diff --git a/reactos/dll/win32/msvcrt40/msvcrt40.rbuild b/reactos/dll/win32/msvcrt40/msvcrt40.rbuild index c8432e06523..e2a0a305684 100644 --- a/reactos/dll/win32/msvcrt40/msvcrt40.rbuild +++ b/reactos/dll/win32/msvcrt40/msvcrt40.rbuild @@ -7,7 +7,6 @@ include/reactos/wine msvcrt40.c - msvcrt40.spec wine msvcrt kernel32 diff --git a/reactos/dll/win32/msvfw32/msvfw32.rbuild b/reactos/dll/win32/msvfw32/msvfw32.rbuild index db7b8feba25..37ffd8aa7e3 100644 --- a/reactos/dll/win32/msvfw32/msvfw32.rbuild +++ b/reactos/dll/win32/msvfw32/msvfw32.rbuild @@ -10,7 +10,6 @@ msvideo_main.c drawdib.c rsrc.rc - msvfw32.spec wine winmm version diff --git a/reactos/dll/win32/msxml3/msxml3.rbuild b/reactos/dll/win32/msxml3/msxml3.rbuild index 1496ec2aa71..da71855fecb 100644 --- a/reactos/dll/win32/msxml3/msxml3.rbuild +++ b/reactos/dll/win32/msxml3/msxml3.rbuild @@ -53,7 +53,6 @@ domimpl.c entityref.c version.rc - msxml3.spec stdole2 diff --git a/reactos/dll/win32/nddeapi/nddeapi.rbuild b/reactos/dll/win32/nddeapi/nddeapi.rbuild index e2ce0e47cc3..a675b40fc8c 100644 --- a/reactos/dll/win32/nddeapi/nddeapi.rbuild +++ b/reactos/dll/win32/nddeapi/nddeapi.rbuild @@ -7,5 +7,4 @@ kernel32 ntdll nddeapi.c - nddeapi.spec diff --git a/reactos/dll/win32/netapi32/netapi32.rbuild b/reactos/dll/win32/netapi32/netapi32.rbuild index c9ed4eaff81..256dcc4a30d 100644 --- a/reactos/dll/win32/netapi32/netapi32.rbuild +++ b/reactos/dll/win32/netapi32/netapi32.rbuild @@ -18,7 +18,6 @@ netbios.c share.c wksta.c - netapi32.spec wine iphlpapi ws2_32 diff --git a/reactos/dll/win32/netcfgx/netcfgx.rbuild b/reactos/dll/win32/netcfgx/netcfgx.rbuild index f520bd7149f..342b84acc8e 100644 --- a/reactos/dll/win32/netcfgx/netcfgx.rbuild +++ b/reactos/dll/win32/netcfgx/netcfgx.rbuild @@ -16,7 +16,6 @@ comctl32 ws2_32 netcfgx.c - netcfgx.spec classfactory.c netcfg_iface.c inetcfgcomp_iface.c diff --git a/reactos/dll/win32/netshell/netshell.rbuild b/reactos/dll/win32/netshell/netshell.rbuild index 0fb25f7ca2c..f84175bf9fc 100644 --- a/reactos/dll/win32/netshell/netshell.rbuild +++ b/reactos/dll/win32/netshell/netshell.rbuild @@ -23,7 +23,6 @@ netshell.rc classfactory.c connectmanager.c - netshell.spec lanconnectui.c lanstatusui.c diff --git a/reactos/dll/win32/newdev/newdev.rbuild b/reactos/dll/win32/newdev/newdev.rbuild index 814e0750b02..2b3b27d898e 100644 --- a/reactos/dll/win32/newdev/newdev.rbuild +++ b/reactos/dll/win32/newdev/newdev.rbuild @@ -5,7 +5,6 @@ stubs.c wizard.c newdev.rc - newdev.spec wine gdi32 comctl32 diff --git a/reactos/dll/win32/ntdsapi/ntdsapi.rbuild b/reactos/dll/win32/ntdsapi/ntdsapi.rbuild index 415b74eab51..2609543d4cc 100644 --- a/reactos/dll/win32/ntdsapi/ntdsapi.rbuild +++ b/reactos/dll/win32/ntdsapi/ntdsapi.rbuild @@ -8,5 +8,4 @@ kernel32 ntdll ntdsapi.c - ntdsapi.spec diff --git a/reactos/dll/win32/odbc32/odbc32.rbuild b/reactos/dll/win32/odbc32/odbc32.rbuild index 87205067049..6a71d3dae22 100644 --- a/reactos/dll/win32/odbc32/odbc32.rbuild +++ b/reactos/dll/win32/odbc32/odbc32.rbuild @@ -9,6 +9,5 @@ wine kernel32 proxyodbc.c - odbc32.spec diff --git a/reactos/dll/win32/odbccp32/odbccp32.rbuild b/reactos/dll/win32/odbccp32/odbccp32.rbuild index e30fbc515aa..a05c9fb918b 100644 --- a/reactos/dll/win32/odbccp32/odbccp32.rbuild +++ b/reactos/dll/win32/odbccp32/odbccp32.rbuild @@ -12,6 +12,5 @@ uuid ntdll odbccp32.c - odbccp32.spec diff --git a/reactos/dll/win32/ole32/ole32.rbuild b/reactos/dll/win32/ole32/ole32.rbuild index 9a430b09c19..2bcc7974f7b 100644 --- a/reactos/dll/win32/ole32/ole32.rbuild +++ b/reactos/dll/win32/ole32/ole32.rbuild @@ -61,7 +61,6 @@ dcom.idl irot.idl . - ole32.spec irot.idl diff --git a/reactos/dll/win32/oleacc/oleacc.rbuild b/reactos/dll/win32/oleacc/oleacc.rbuild index 8773c36f2cf..79c8ec05b82 100644 --- a/reactos/dll/win32/oleacc/oleacc.rbuild +++ b/reactos/dll/win32/oleacc/oleacc.rbuild @@ -8,7 +8,6 @@ include/reactos/wine main.c - oleacc.spec wine kernel32 ntdll diff --git a/reactos/dll/win32/oleaut32/oleaut32.rbuild b/reactos/dll/win32/oleaut32/oleaut32.rbuild index 4dba811a42e..1cc9243f803 100644 --- a/reactos/dll/win32/oleaut32/oleaut32.rbuild +++ b/reactos/dll/win32/oleaut32/oleaut32.rbuild @@ -29,7 +29,6 @@ oleaut32.rc oleaut32_oaidl.idl . - oleaut32.spec oleaut32_proxy wine ole32 diff --git a/reactos/dll/win32/pdh/pdh.rbuild b/reactos/dll/win32/pdh/pdh.rbuild index e5533d203f7..e79416c36c6 100644 --- a/reactos/dll/win32/pdh/pdh.rbuild +++ b/reactos/dll/win32/pdh/pdh.rbuild @@ -8,5 +8,4 @@ kernel32 ntdll pdh_main.c - pdh.spec diff --git a/reactos/dll/win32/printui/printui.rbuild b/reactos/dll/win32/printui/printui.rbuild index fe9985e7e38..2c1be931331 100644 --- a/reactos/dll/win32/printui/printui.rbuild +++ b/reactos/dll/win32/printui/printui.rbuild @@ -9,5 +9,4 @@ ntdll printui.c printui.rc - printui.spec diff --git a/reactos/dll/win32/pstorec/pstorec.rbuild b/reactos/dll/win32/pstorec/pstorec.rbuild index 493a30f22df..3ed50e6ea91 100644 --- a/reactos/dll/win32/pstorec/pstorec.rbuild +++ b/reactos/dll/win32/pstorec/pstorec.rbuild @@ -5,5 +5,4 @@ kernel32 uuid pstorec.c - pstorec.spec diff --git a/reactos/dll/win32/rasapi32/rasapi32.rbuild b/reactos/dll/win32/rasapi32/rasapi32.rbuild index b932be1f356..b25947d0b2a 100644 --- a/reactos/dll/win32/rasapi32/rasapi32.rbuild +++ b/reactos/dll/win32/rasapi32/rasapi32.rbuild @@ -7,7 +7,6 @@ include/reactos/wine rasapi.c - rasapi32.spec wine kernel32 ntdll diff --git a/reactos/dll/win32/rasdlg/rasdlg.rbuild b/reactos/dll/win32/rasdlg/rasdlg.rbuild index 6f31a16681f..a903c55401f 100644 --- a/reactos/dll/win32/rasdlg/rasdlg.rbuild +++ b/reactos/dll/win32/rasdlg/rasdlg.rbuild @@ -8,5 +8,4 @@ uuid rasdlg.c rasdlg.rc - rasdlg.spec diff --git a/reactos/dll/win32/rasman/rasman.rbuild b/reactos/dll/win32/rasman/rasman.rbuild index 5df7820ec03..c2e6da74923 100644 --- a/reactos/dll/win32/rasman/rasman.rbuild +++ b/reactos/dll/win32/rasman/rasman.rbuild @@ -8,5 +8,4 @@ uuid rasman.c rasman.rc - rasman.spec diff --git a/reactos/dll/win32/rpcrt4/rpcrt4.rbuild b/reactos/dll/win32/rpcrt4/rpcrt4.rbuild index cb802ac9824..5f714cf6212 100644 --- a/reactos/dll/win32/rpcrt4/rpcrt4.rbuild +++ b/reactos/dll/win32/rpcrt4/rpcrt4.rbuild @@ -39,7 +39,6 @@ rpcrt4.rc epm.idl . - rpcrt4.spec epm.idl diff --git a/reactos/dll/win32/schannel/schannel.rbuild b/reactos/dll/win32/schannel/schannel.rbuild index c11ea8cde36..266313cbc2e 100644 --- a/reactos/dll/win32/schannel/schannel.rbuild +++ b/reactos/dll/win32/schannel/schannel.rbuild @@ -13,5 +13,4 @@ schannel_main.c usermode.c version.rc - schannel.spec diff --git a/reactos/dll/win32/setupapi/setupapi.rbuild b/reactos/dll/win32/setupapi/setupapi.rbuild index 53c5f1bb97c..92d723b4bc8 100644 --- a/reactos/dll/win32/setupapi/setupapi.rbuild +++ b/reactos/dll/win32/setupapi/setupapi.rbuild @@ -36,5 +36,4 @@ stubs.c rpc.c setupapi.rc - setupapi.spec diff --git a/reactos/dll/win32/sfc/sfc.rbuild b/reactos/dll/win32/sfc/sfc.rbuild index 263c55ca301..527c0f6f07d 100644 --- a/reactos/dll/win32/sfc/sfc.rbuild +++ b/reactos/dll/win32/sfc/sfc.rbuild @@ -3,6 +3,5 @@ . kernel32 sfc.c - sfc.spec precomp.h diff --git a/reactos/dll/win32/sfc_os/sfc_os.rbuild b/reactos/dll/win32/sfc_os/sfc_os.rbuild index 6cc89c87ae9..4209bfda2df 100644 --- a/reactos/dll/win32/sfc_os/sfc_os.rbuild +++ b/reactos/dll/win32/sfc_os/sfc_os.rbuild @@ -3,6 +3,5 @@ . kernel32 sfc_os.c - sfc_os.spec precomp.h diff --git a/reactos/dll/win32/shdocvw/shdocvw.rbuild b/reactos/dll/win32/shdocvw/shdocvw.rbuild index 34ec1935482..69258a12700 100644 --- a/reactos/dll/win32/shdocvw/shdocvw.rbuild +++ b/reactos/dll/win32/shdocvw/shdocvw.rbuild @@ -28,5 +28,4 @@ view.c webbrowser.c shdocvw.rc - shdocvw.spec diff --git a/reactos/dll/win32/shell32/shell32.rbuild b/reactos/dll/win32/shell32/shell32.rbuild index d695726a54b..c9b1a32c6a2 100644 --- a/reactos/dll/win32/shell32/shell32.rbuild +++ b/reactos/dll/win32/shell32/shell32.rbuild @@ -70,7 +70,6 @@ shv_def_cmenu.c startmenu.c ros-systray.c - shell32.spec fprop.c drive.c she_ocmenu.c diff --git a/reactos/dll/win32/shimgvw/shimgvw.rbuild b/reactos/dll/win32/shimgvw/shimgvw.rbuild index 07ff24d7d27..8d42f9acdff 100644 --- a/reactos/dll/win32/shimgvw/shimgvw.rbuild +++ b/reactos/dll/win32/shimgvw/shimgvw.rbuild @@ -11,5 +11,4 @@ gdiplus shimgvw.c shimgvw.rc - shimgvw.spec diff --git a/reactos/dll/win32/shlwapi/shlwapi.rbuild b/reactos/dll/win32/shlwapi/shlwapi.rbuild index 297273f3524..018a26d248a 100644 --- a/reactos/dll/win32/shlwapi/shlwapi.rbuild +++ b/reactos/dll/win32/shlwapi/shlwapi.rbuild @@ -21,7 +21,6 @@ url.c wsprintf.c shlwapi.rc - shlwapi.spec wine uuid user32 diff --git a/reactos/dll/win32/sxs/sxs.rbuild b/reactos/dll/win32/sxs/sxs.rbuild index 5f551e5cb8e..b21ee66606d 100644 --- a/reactos/dll/win32/sxs/sxs.rbuild +++ b/reactos/dll/win32/sxs/sxs.rbuild @@ -7,7 +7,6 @@ include/reactos/wine sxs.c - sxs.spec wine kernel32 ntdll diff --git a/reactos/dll/win32/tapi32/tapi32.rbuild b/reactos/dll/win32/tapi32/tapi32.rbuild index dc4dc2341cf..04b4c67dca0 100644 --- a/reactos/dll/win32/tapi32/tapi32.rbuild +++ b/reactos/dll/win32/tapi32/tapi32.rbuild @@ -9,7 +9,6 @@ assisted.c line.c phone.c - tapi32.spec wine advapi32 kernel32 diff --git a/reactos/dll/win32/urlmon/urlmon.rbuild b/reactos/dll/win32/urlmon/urlmon.rbuild index f6257b35514..0699b9ab3a0 100644 --- a/reactos/dll/win32/urlmon/urlmon.rbuild +++ b/reactos/dll/win32/urlmon/urlmon.rbuild @@ -25,7 +25,6 @@ umstream.c urlmon_main.c rsrc.rc - urlmon.spec wine uuid ole32 diff --git a/reactos/dll/win32/usp10/usp10.rbuild b/reactos/dll/win32/usp10/usp10.rbuild index c8b9ec1e94b..f385bf3ca6f 100644 --- a/reactos/dll/win32/usp10/usp10.rbuild +++ b/reactos/dll/win32/usp10/usp10.rbuild @@ -7,7 +7,6 @@ include/reactos/wine usp10.c - usp10.spec wine gdi32 kernel32 diff --git a/reactos/dll/win32/uxtheme/uxtheme.rbuild b/reactos/dll/win32/uxtheme/uxtheme.rbuild index befa57f355e..13b62128a7a 100644 --- a/reactos/dll/win32/uxtheme/uxtheme.rbuild +++ b/reactos/dll/win32/uxtheme/uxtheme.rbuild @@ -15,7 +15,6 @@ system.c uxini.c version.rc - uxtheme.spec wine user32 gdi32 diff --git a/reactos/dll/win32/wininet/wininet.rbuild b/reactos/dll/win32/wininet/wininet.rbuild index 5ef18ef2aa8..434373e661c 100644 --- a/reactos/dll/win32/wininet/wininet.rbuild +++ b/reactos/dll/win32/wininet/wininet.rbuild @@ -30,6 +30,5 @@ wininet_main.c rsrc.rc version.rc - wininet.spec diff --git a/reactos/dll/win32/winmm/winmm.rbuild b/reactos/dll/win32/winmm/winmm.rbuild index e0ee10b3e63..fb8023f98a6 100644 --- a/reactos/dll/win32/winmm/winmm.rbuild +++ b/reactos/dll/win32/winmm/winmm.rbuild @@ -26,6 +26,5 @@ winmm.c registry.c winmm_res.rc - winmm.spec diff --git a/reactos/dll/win32/wintrust/wintrust.rbuild b/reactos/dll/win32/wintrust/wintrust.rbuild index dfede7f1e22..1cab0d0c545 100644 --- a/reactos/dll/win32/wintrust/wintrust.rbuild +++ b/reactos/dll/win32/wintrust/wintrust.rbuild @@ -17,5 +17,4 @@ asn.c softpub.c version.rc - wintrust.spec diff --git a/reactos/dll/win32/wldap32/wldap32.rbuild b/reactos/dll/win32/wldap32/wldap32.rbuild index d0376b83c14..ded7bb5e051 100644 --- a/reactos/dll/win32/wldap32/wldap32.rbuild +++ b/reactos/dll/win32/wldap32/wldap32.rbuild @@ -27,7 +27,6 @@ search.c value.c wldap32.rc - wldap32.spec wine user32 kernel32 diff --git a/reactos/dll/win32/wtsapi32/wtsapi32.rbuild b/reactos/dll/win32/wtsapi32/wtsapi32.rbuild index d3157408290..247932f449a 100644 --- a/reactos/dll/win32/wtsapi32/wtsapi32.rbuild +++ b/reactos/dll/win32/wtsapi32/wtsapi32.rbuild @@ -7,7 +7,6 @@ include/reactos/wine wtsapi32.c - wtsapi32.spec wine kernel32 ntdll diff --git a/reactos/drivers/usb/usbd/usbd.rbuild b/reactos/drivers/usb/usbd/usbd.rbuild index 1759f89e7a7..c5900b5ff35 100644 --- a/reactos/drivers/usb/usbd/usbd.rbuild +++ b/reactos/drivers/usb/usbd/usbd.rbuild @@ -6,5 +6,4 @@ hal usbd.c usbd.rc - usbd.spec diff --git a/reactos/drivers/video/displays/framebufacc/framebufacc.rbuild b/reactos/drivers/video/displays/framebufacc/framebufacc.rbuild index 5db42b294fc..df893367e08 100644 --- a/reactos/drivers/video/displays/framebufacc/framebufacc.rbuild +++ b/reactos/drivers/video/displays/framebufacc/framebufacc.rbuild @@ -10,5 +10,4 @@ screen.c surface.c framebufacc.rc - framebufacc.spec diff --git a/reactos/tools/rbuild/backend/mingw/modulehandler.cpp b/reactos/tools/rbuild/backend/mingw/modulehandler.cpp index fb26f719200..77b3f4ee3b2 100644 --- a/reactos/tools/rbuild/backend/mingw/modulehandler.cpp +++ b/reactos/tools/rbuild/backend/mingw/modulehandler.cpp @@ -420,8 +420,6 @@ MingwModuleHandler::GetObjectFilename ( newExtension = "_" + module.name + ".coff"; else if (extension == ".mc") newExtension = ".rc"; - else if (extension == ".spec" || extension == ".pspec") - newExtension = "_" + module.name + ".stubs.o"; else if (extension == ".idl") { if ( module.type == RpcServer ) @@ -540,26 +538,6 @@ MingwModuleHandler::GenerateDependsTarget () const module.name.c_str () ); } -string -MingwModuleHandler::GetObjectFilenames () -{ - const vector& compilationUnits = module.non_if_data.compilationUnits; - if ( compilationUnits.size () == 0 ) - return ""; - - string objectFilenames ( "" ); - for ( size_t i = 0; i < compilationUnits.size (); i++ ) - { - if ( objectFilenames.size () > 0 ) - objectFilenames += " "; - const FileLocation& compilationName = compilationUnits[i]->GetFilename (); - const FileLocation *object_file = GetObjectFilename ( &compilationName, module ); - objectFilenames += backend->GetFullName ( *object_file ); - delete object_file; - } - return objectFilenames; -} - /* static */ string MingwModuleHandler::GenerateGccDefineParametersFromVector ( const vector& defines, @@ -1001,6 +979,22 @@ MingwModuleHandler::GenerateObjectMacros ( delete object_file; } CleanupCompilationUnitVector ( sourceCompilationUnits ); + + if ( IsSpecDefinitionFile() ) + { + const FileLocation *stubs_file = new FileLocation( + IntermediateDirectory, + module.importLibrary->source->relative_path, + ReplaceExtension ( module.importLibrary->source->name, "_" + module.name + ".stubs.o" ) ); + + fprintf ( + fMakefile, + "%s += %s\n", + objectsMacro.c_str(), + backend->GetFullName ( *stubs_file ).c_str () ); + + delete stubs_file; + } } /* caller needs to delete the returned object */ @@ -1056,33 +1050,34 @@ Rule wmcRule ( "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext).rc "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext).rc", "$(INTERMEDIATE)$(SEP)include$(SEP)reactos$(SEP)$(source_name_noext).h", "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)", NULL ); -Rule winebuildPDefRule ( "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).auto.def: $(source)$(dependencies) $(WINEBUILD_TARGET) | $(INTERMEDIATE)$(SEP)$(source_dir)\n" +Rule winebuildPDefRule ( "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).spec: $(source)$(dependencies) | $(INTERMEDIATE)$(SEP)$(source_dir)\n" + "\t$(ECHO_CPP)\n" + "\t${gcc} -xc -E ${$(module_name)_RCFLAGS} $(source) > $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).spec\n\n" + "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).auto.def: $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).spec $(WINEBUILD_TARGET) | $(INTERMEDIATE)$(SEP)$(source_dir)\n" "\t$(ECHO_WINEBLD)\n" - "\t${gcc} -xc -E ${$(module_name)_RCFLAGS} $(source) > $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).def.spec\n" - "\t$(Q)$(WINEBUILD_TARGET) $(WINEBUILD_FLAGS) -o $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).auto.def --def -E $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).def.spec\n\n", - "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).def.spec", + "\t$(Q)$(WINEBUILD_TARGET) $(WINEBUILD_FLAGS) -o $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).auto.def --def -E $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).spec --filename $(module_dllname)\n\n", + "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).spec", "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).auto.def", "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)", NULL ); -Rule winebuildPRule ( "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).stubs.c: $(source_path)$(SEP)$(source_name_noext).pspec $(WINEBUILD_TARGET)\n" +Rule winebuildPRule ( "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).stubs.c: $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).spec $(WINEBUILD_TARGET) | $(INTERMEDIATE)$(SEP)$(source_dir)\n" "\t$(ECHO_WINEBLD)\n" - "\t${gcc} -xc -E ${$(module_name)_RCFLAGS} $(source) > $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).stubs.spec\n" - "\t$(Q)$(WINEBUILD_TARGET) $(WINEBUILD_FLAGS) -o $(INTERMEDIATE)$(SEP)$(source_path)$(SEP)$(source_name_noext)_$(module_name).stubs.c --pedll $(INTERMEDIATE)$(SEP)$(source_path)$(SEP)$(source_name_noext)_$(module_name).stubs.spec\n" - "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).stubs.o: $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).stubs.c$(dependencies) | $(INTERMEDIATE)$(SEP)$(source_dir)\n" + "\t$(Q)$(WINEBUILD_TARGET) $(WINEBUILD_FLAGS) -o $@ --pedll $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).spec --filename $(module_dllname)\n\n" + "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).stubs.o: $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).stubs.c | $(INTERMEDIATE)$(SEP)$(source_dir)\n" "\t$(ECHO_CC)\n" "\t${gcc} -o $@ $($(module_name)_CFLAGS)$(compiler_flags) -c $<\n", - "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).stubs.spec", + "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).spec", "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).stubs.c", "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).stubs.o", "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)", NULL ); Rule winebuildDefRule ( "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).auto.def: $(source)$(dependencies) $(WINEBUILD_TARGET) | $(INTERMEDIATE)$(SEP)$(source_dir)\n" "\t$(ECHO_WINEBLD)\n" - "\t$(Q)$(WINEBUILD_TARGET) $(WINEBUILD_FLAGS) -o $(INTERMEDIATE)$(SEP)$(source_path)$(SEP)$(source_name_noext)_$(module_name).auto.def --def -E $(source)\n\n", + "\t$(Q)$(WINEBUILD_TARGET) $(WINEBUILD_FLAGS) -o $(INTERMEDIATE)$(SEP)$(source_path)$(SEP)$(source_name_noext)_$(module_name).auto.def --def -E $(source) --filename $(module_dllname)\n\n", "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext).spec", "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).auto.def", "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)", NULL ); -Rule winebuildRule ( "$(INTERMEDIATE)$(SEP)$(source_path)$(SEP)$(source_name_noext)_$(module_name).stubs.c: $(source_path)$(SEP)$(source_name_noext).spec $(WINEBUILD_TARGET)\n" +Rule winebuildRule ( "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).stubs.c: $(source_path)$(SEP)$(source_name_noext).spec $(WINEBUILD_TARGET)\n" "\t$(ECHO_WINEBLD)\n" - "\t$(Q)$(WINEBUILD_TARGET) $(WINEBUILD_FLAGS) -o $(INTERMEDIATE)$(SEP)$(source_path)$(SEP)$(source_name_noext)_$(module_name).stubs.c --pedll $(source_path)$(SEP)$(source_name_noext).spec\n" + "\t$(Q)$(WINEBUILD_TARGET) $(WINEBUILD_FLAGS) -o $@ --pedll $(source_path)$(SEP)$(source_name_noext).spec --filename $(module_dllname)\n" "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).stubs.o: $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).stubs.c$(dependencies) | $(INTERMEDIATE)$(SEP)$(source_dir)\n" "\t$(ECHO_CC)\n" "\t${gcc} -o $@ $($(module_name)_CFLAGS)$(compiler_flags) -c $<\n", @@ -1258,8 +1253,6 @@ MingwModuleHandler::GenerateCommands ( { HostDontCare, TypeDontCare, ".asm", &nasmRule }, { HostDontCare, TypeDontCare, ".rc", &windresRule }, { HostDontCare, TypeDontCare, ".mc", &wmcRule }, - { HostDontCare, TypeDontCare, ".pspec", &winebuildPRule }, - { HostDontCare, TypeDontCare, ".spec", &winebuildRule }, { HostDontCare, RpcServer, ".idl", &widlServerRule }, { HostDontCare, RpcClient, ".idl", &widlClientRule }, { HostDontCare, RpcProxy, ".idl", &widlProxyRule }, @@ -1485,8 +1478,6 @@ MingwModuleHandler::GenerateLinkerCommand ( linkerParameters.find ("-nostdlib") == string::npos && !(module.type == KernelModeDLL || module.type == KernelModeDriver); - string targetName ( module.output->name ); - if ( !module.HasImportLibrary() ) { fprintf ( fMakefile, @@ -1524,7 +1515,7 @@ MingwModuleHandler::GenerateLinkerCommand ( fprintf ( fMakefile, "\t${dlltool} --dllname %s --def %s --output-exp $@%s%s\n", - targetName.c_str (), + module.GetDllName ().c_str (), definitionFilename ? backend->GetFullName ( *definitionFilename ).c_str () : "", module.mangledSymbols ? "" : " --kill-at", module.underscoreSymbols ? " --add-underscore" : "" ); @@ -1621,6 +1612,20 @@ MingwModuleHandler::GenerateObjectFileTargets ( const IfableData& data ) moduleDependencies ); } CleanupCompilationUnitVector ( sourceCompilationUnits ); + + SpecFileType spec = IsSpecDefinitionFile (); + + if ( spec ) + { + Rule * defRule; + + if (spec == PSpec) + defRule = &winebuildPRule; + else + defRule = &winebuildRule; + + defRule->Execute ( fMakefile, backend, module, module.importLibrary->source, clean_files ); + } } void @@ -1683,7 +1688,7 @@ MingwModuleHandler::GenerateArchiveTarget () fprintf ( fMakefile, "\t${dlltool} --dllname %s --def %s --output-lib $@%s%s\n", - module.importLibrary->dllname.c_str (), + module.GetDllName ().c_str (), backend->GetFullName ( *definitionFilename ).c_str (), module.mangledSymbols ? "" : " --kill-at", module.underscoreSymbols ? " --add-underscore" : "" ); @@ -2200,10 +2205,12 @@ MingwModuleHandler::IsSpecDefinitionFile () const if(!module.importLibrary) return None; - if(module.importLibrary->source->name.rfind(".spec") != string::npos) + std::string ext = GetExtension ( *module.importLibrary->source ); + + if ( ext == ".spec" ) return Spec; - if(module.importLibrary->source->name.rfind(".pspec") != string::npos) + if ( ext == ".pspec" ) return PSpec; return None; @@ -2239,9 +2246,6 @@ MingwModuleHandler::GenerateImportLibraryTargetIfNeeded () const FileLocation *defFilename = GetDefinitionFilename (); string empty = "tools" + sSep + "rbuild" + sSep + "empty.def"; - vector deps; - GetDefinitionDependencies ( deps ); - fprintf ( fMakefile, "# IMPORT LIBRARY RULE\n" ); fprintf ( fMakefile, "%s:", @@ -2253,11 +2257,6 @@ MingwModuleHandler::GenerateImportLibraryTargetIfNeeded () backend->GetFullName ( *defFilename ).c_str () ); } - size_t i, iend = deps.size(); - for ( i = 0; i < iend; i++ ) - fprintf ( fMakefile, " %s", - backend->GetFullName ( deps[i] ).c_str () ); - fprintf ( fMakefile, " | %s\n", backend->GetFullPath ( *library_target ).c_str () ); @@ -2265,7 +2264,7 @@ MingwModuleHandler::GenerateImportLibraryTargetIfNeeded () fprintf ( fMakefile, "\t${dlltool} --dllname %s --def %s --output-lib %s%s%s\n\n", - module.output->name.c_str (), + module.GetDllName ().c_str (), defFilename ? backend->GetFullName ( *defFilename ).c_str () : empty.c_str (), backend->GetFullName ( *library_target ).c_str (), diff --git a/reactos/tools/rbuild/backend/mingw/modulehandler.h b/reactos/tools/rbuild/backend/mingw/modulehandler.h index 331335f375b..9c8895ec598 100644 --- a/reactos/tools/rbuild/backend/mingw/modulehandler.h +++ b/reactos/tools/rbuild/backend/mingw/modulehandler.h @@ -97,8 +97,6 @@ protected: const FileLocation* GetObjectFilename ( const FileLocation* sourceFile, const Module& module ) const; - std::string GetObjectFilenames (); - std::string GetPreconditionDependenciesName () const; std::string GetCFlagsMacro () const; static std::string GetObjectsMacro ( const Module& ); diff --git a/reactos/tools/rbuild/backend/mingw/rule.cpp b/reactos/tools/rbuild/backend/mingw/rule.cpp index d246f3d12ad..e177ca84b58 100644 --- a/reactos/tools/rbuild/backend/mingw/rule.cpp +++ b/reactos/tools/rbuild/backend/mingw/rule.cpp @@ -55,6 +55,7 @@ FixString ( const string& str, Backend *backend, const Module& module, const Fil } ReplaceVariable ( ret, "$(dependencies)", dep ); ReplaceVariable ( ret, "$(module_name)", module.name ); + ReplaceVariable ( ret, "$(module_dllname)", module.GetDllName() ); ReplaceVariable ( ret, "$(module_output)", GetTargetMacro ( module, true ) ); ReplaceVariable ( ret, "$(SEP)", sSep ); diff --git a/reactos/tools/rbuild/module.cpp b/reactos/tools/rbuild/module.cpp index bdf2b52b429..ef747b26047 100644 --- a/reactos/tools/rbuild/module.cpp +++ b/reactos/tools/rbuild/module.cpp @@ -1362,6 +1362,16 @@ Module::SetImportLibrary ( ImportLibrary* importLibrary ) HasImportLibrary () ? "lib" + name + ".a" : output->name ); } +std::string +Module::GetDllName () const +{ + if ( importLibrary && !importLibrary->dllname.empty() ) + return importLibrary->dllname; + else if ( output ) + return output->name; + else + throw new InvalidOperationException ( __FILE__, __LINE__, "Module %s has no dllname." ); +} File::File ( DirectoryLocation directory, const string& relative_path, diff --git a/reactos/tools/rbuild/rbuild.h b/reactos/tools/rbuild/rbuild.h index 2629153d9af..0d2d3be90a5 100644 --- a/reactos/tools/rbuild/rbuild.h +++ b/reactos/tools/rbuild/rbuild.h @@ -395,6 +395,7 @@ public: bool HasFileWithExtension ( const IfableData&, const std::string& extension ) const; void InvokeModule () const; void ProcessXML (); + std::string GetDllName() const; private: void SetImportLibrary ( ImportLibrary* importLibrary ); DirectoryLocation GetTargetDirectoryTree () const;