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;