CVS: winex Make.rules.in,1.21,1.22
[email protected] 14 Dec 2007 20:32:22 -0000
| Newsgroups | gmane.comp.emulators.winex.cvs |
|---|---|
| Message-ID | <[email protected]> |
Subject: winex Make.rules.in,1.21,1.22Update of /var/lib/cvsd/cvsroot/winex
In directory agravaine:/tmp/cvs-serv16877
Modified Files:
Make.rules.in
Log Message:
Rules for compiling IDL files. (Not handling proxy/stub files yet.)
Index: Make.rules.in
===================================================================
RCS file: /var/lib/cvsd/cvsroot/winex/Make.rules.in,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- Make.rules.in 14 Dec 2007 20:12:43 -0000 1.21
+++ Make.rules.in 14 Dec 2007 20:32:20 -0000 1.22
@@ -54,6 +54,7 @@
LN_S = @LN_S@
DIVINCL = $(EXTRAPREINCL) -I$(SRCDIR) -I. -I$(TOPSRCDIR)/include -I$(TOPOBJDIR)/include $(EXTRAINCL)
ALLCFLAGS = $(DIVINCL) $(CFLAGS) $(EXTRA_CFLAGS) $(DLLFLAGS) $(DEFS) $(OPTIONS) $(X_CFLAGS)
+IDLFLAGS = $(DIVINCL) $(DEFS) $(EXTRAIDLFLAGS)
LDCOMBINE = @LDCOMBINE@
LDFLAGS = @LDFLAGS@
STRIP_OPTION = @STRIP_OPTION@
@@ -129,9 +130,12 @@
_OBJC_SRCS = @_OBJC_SRCS@
_OBJCXX_SRCS = @_OBJCXX_SRCS@
+IDL_HDRS = $(IDL_H_SRCS:.idl=.h)
+IDL_THKS = $(IDL_I_SRCS:.idl=_i.c)
+IDL_TLBS = $(IDL_TLB_SRCS:.idl=.tlb)
OBJS = $(SPEC_SRCS:.spec=.spec.o) $(C_SRCS:.c=.o) $(GEN_C_SRCS:.c=.o) $(GEN_ASM_SRCS:.s=.o) \
$(ASM_SRCS:.S=.o) $(GLUE:.c=.glue.o) $(CXX_SRCS:.cpp=.o) $(_OBJC_SRCS:.m=.o) \
- $(_OBJCXX_SRCS:.mm=.o) $(BISON_SRCS:.y=.tab.o) $(LEX_SRCS:.l=.yy.o) $(EXTRA_OBJS)
+ $(_OBJCXX_SRCS:.mm=.o) $(BISON_SRCS:.y=.tab.o) $(LEX_SRCS:.l=.yy.o) $(IDL_THKS:.c=.o) $(EXTRA_OBJS)
.PRECIOUS: $(ALL_OBJS) $(OBJS) $(SPEC_SRCS:.spec=.spec.c)
@@ -139,7 +143,7 @@
# Implicit rules
-.SUFFIXES: .cpp .mc .rc .mc.rc .res .spec .spec.c .spec.def .glue.c .pl .ok .i .m .mm .y .l .tab.c .tab.h .yy.c
+.SUFFIXES: .cpp .mc .rc .mc.rc .res .spec .spec.c .spec.def .glue.c .pl .ok .i .m .mm .y .l .tab.c .tab.h .yy.c .idl .tlb _i.c
.cpp.o:
$(CXX) -c $(ALLCFLAGS) -o $@ $<
@@ -201,6 +205,21 @@
.l.yy.c:
$(LEX) $(LEXFLAGS) -t $< >$@ || ($(RM) $@ && exit 1)
+.idl.h:
+ $(LDPATH) $(WIDL) $(IDLFLAGS) -b -h -H $@ $<
+
+.idl.tlb:
+ $(LDPATH) $(WIDL) $(IDLFLAGS) -t -T $@ $<
+
+.idl_i.c:
+ $(LDPATH) $(WIDL) $(IDLFLAGS) -u -U $@ $<
+
+# BIG KLUDGE: after some loon changed our build system to no longer use makedep,
+# it became impossible to generate proper dependencies on IDL-generated headers.
+# So this rule is here to force headers to always be generated first,
+# but it'll only work for module-private headers, not global headers.
+$(OBJS): $(IDL_HDRS)
+
.PHONY: all install uninstall clean distclean depend dummy check test testclean
@@ -312,7 +331,7 @@
$(RM) $(TESTRESULTS)
clean:: $(SUBDIRS:%=%/__clean__) $(EXTRASUBDIRS:%=%/__clean__)
- $(RM) $(CLEAN_FILES) $(GEN_C_SRCS) $(GEN_ASM_SRCS) $(RC_SRCS:.rc=.res) $(RC_SRCS16:.rc=.res) $(MC_SRCS:.mc=.mc.rc) $(TESTRESULTS) $(TESTLIST) $(PROGRAMS)
+ $(RM) $(CLEAN_FILES) $(IDL_HDRS) $(IDL_THKS) $(IDL_TLBS) $(GEN_C_SRCS) $(GEN_ASM_SRCS) $(RC_SRCS:.rc=.res) $(RC_SRCS16:.rc=.res) $(MC_SRCS:.mc=.mc.rc) $(TESTRESULTS) $(TESTLIST) $(PROGRAMS)
# Rules for installing
@@ -356,12 +375,14 @@
$(GLUE:.c=.glue.c): $(WINEBUILD)
-$(RC_SRCS:.rc=.res): $(WRC)
+$(RC_SRCS:.rc=.res): $(WRC) $(IDL_TLBS)
$(RC_SRCS16:.rc=.res): $(WRC)
$(MC_SRCS:.mc=.mc.rc): $(WMC)
+$(IDL_HDRS) $(IDL_THKS) $(IDL_TLBS): $(WIDL)
+
$(SUBDIRS): dummy
@cd $@ && $(MAKE)