Alexandre Julliard : makefiles: Move the import library rules to the global Make.rules file.

Alexandre Julliard julliard at winehq.org
Wed Oct 9 14:22:14 CDT 2013


Module: wine
Branch: master
Commit: 752b0e02eab20109beeefd897704aa962bc2912e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=752b0e02eab20109beeefd897704aa962bc2912e

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Sat Oct  5 23:52:47 2013 +0200

makefiles: Move the import library rules to the global Make.rules file.

---

 Make.rules.in                  |   15 ++++++++++++++-
 aclocal.m4                     |    4 ++--
 configure                      |    4 ++--
 dlls/Makedll.rules.in          |   33 ---------------------------------
 dlls/krnl386.exe16/Makefile.in |    1 -
 5 files changed, 18 insertions(+), 39 deletions(-)

diff --git a/Make.rules.in b/Make.rules.in
index fb7ac3e..84a05c2 100644
--- a/Make.rules.in
+++ b/Make.rules.in
@@ -25,7 +25,7 @@ IDL_GEN_HEADERS = $(IDL_H_SRCS:.idl=.h) $(IDL_C_SRCS:.idl=.h) $(IDL_I_SRCS:.idl=
                   $(IDL_P_SRCS:.idl=.h) $(IDL_S_SRCS:.idl=.h)
 
 CLEAN_FILES   = *.o *.a *.so *.mo *.res *.fake *.ok *.tab.[ch] *.yy.c
-CLEAN_TARGETS = $(IDL_GEN_C_SRCS) $(IDL_GEN_HEADERS) \
+CLEAN_TARGETS = $(IMPORTLIB:%=lib%. at IMPLIBEXT@) $(IDL_GEN_C_SRCS) $(IDL_GEN_HEADERS) \
                 $(IDL_TLB_SRCS:.idl=.tlb) $(IDL_P_SRCS:.idl=_p.c dlldata.c) \
                 $(PO_SRCS:.rc=.res rsrc.pot) $(MC_SRCS:.mc=.res msg.pot) $(XTEMPLATE_SRCS:.x=.h)
 
@@ -123,6 +123,19 @@ $(STATICLIB:.a=.cross.a): $(CROSSOBJS) Makefile.in
 	$(CROSSAR) $(ARFLAGS) $@ $(CROSSOBJS)
 	$(CROSSRANLIB) $@
 
+# Rules for import libraries
+
+$(IMPORTLIB:%=lib%.def.a): $(IMPLIB_SRCS:.c=.o)
+	$(RM) $@
+	$(AR) $(ARFLAGS) $@ $(IMPLIB_SRCS:.c=.o)
+	$(RANLIB) $@
+
+$(IMPORTLIB:%=lib%.a): $(MAINSPEC) $(IMPLIB_SRCS:.c=.o)
+	$(WINEBUILD) $(TARGETFLAGS) -w --implib -o $@ --export $(srcdir)/$(MAINSPEC) $(IMPLIB_SRCS:.c=.o)
+
+$(IMPORTLIB:%=lib%.cross.a): $(MAINSPEC) $(IMPLIB_SRCS:.c=.cross.o)
+	$(WINEBUILD) $(CROSSTARGET:%=-b %) -w --implib -o $@ --export $(srcdir)/$(MAINSPEC) $(IMPLIB_SRCS:.c=.cross.o)
+
 # Rules for dependencies
 
 DEPEND_SRCS = $(C_SRCS) $(OBJC_SRCS) $(RC_SRCS) $(MC_SRCS) \
diff --git a/aclocal.m4 b/aclocal.m4
index 30d6827..9e2e147 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -432,8 +432,8 @@ $ac_dir/uninstall::
         wine_fn_append_rule \
 "__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT
 $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: $ac_deps
-$ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile
-	@cd $ac_dir && \$(MAKE) lib$ac_implib.def
+$ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
+	\$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$[@] --export \$(srcdir)/$ac_dir/$ac_name.spec
 $ac_file.$STATIC_IMPLIBEXT: $ac_dir/Makefile dummy
 	@cd $ac_dir && \$(MAKE) lib$ac_implib.$STATIC_IMPLIBEXT
 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
diff --git a/configure b/configure
index b022253..c67e7ba 100755
--- a/configure
+++ b/configure
@@ -16294,8 +16294,8 @@ fi
         wine_fn_append_rule \
 "__builddeps__: $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT
 $ac_file.$IMPLIBEXT $ac_file.$STATIC_IMPLIBEXT $ac_file.cross.a: $ac_deps
-$ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile
-	@cd $ac_dir && \$(MAKE) lib$ac_implib.def
+$ac_file.def: $ac_dir/$ac_name.spec $ac_dir/Makefile \$(WINEBUILD)
+	\$(WINEBUILD) \$(TARGETFLAGS)$ac_implibflags -w --def -o \$@ --export \$(srcdir)/$ac_dir/$ac_name.spec
 $ac_file.$STATIC_IMPLIBEXT: $ac_dir/Makefile dummy
 	@cd $ac_dir && \$(MAKE) lib$ac_implib.$STATIC_IMPLIBEXT
 .PHONY: $ac_dir/install-dev $ac_dir/uninstall
diff --git a/dlls/Makedll.rules.in b/dlls/Makedll.rules.in
index 3a226ce..2e23116 100644
--- a/dlls/Makedll.rules.in
+++ b/dlls/Makedll.rules.in
@@ -12,10 +12,6 @@ BASEMODULE  = $(MODULE:%.dll=%)
 MAINSPEC    = $(BASEMODULE).spec
 ALL_LIBS    = $(LIBPORT) $(EXTRALIBS) $(LDFLAGS) $(LIBS)
 IDL_TLB_RES = $(IDL_TLB_SRCS:.idl=_t.res)
-IMPLIB_OBJS = $(IMPLIB_SRCS:.c=.o)
-IMPLIBFLAGS = $(TARGETFLAGS) $(EXTRAIMPLIBFLAGS)
-IMPORTLIBFILE = $(IMPORTLIB:%=lib%. at IMPLIBEXT@)
-STATICIMPLIB  = $(IMPORTLIBFILE:.def=.def.a)
 
 @MAKE_RULES@
 
@@ -24,30 +20,6 @@ all: $(MODULE)$(DLLEXT) $(MODULE)$(FAKEEXT)
 $(MODULE) $(MODULE).so $(MODULE).fake: $(MAINSPEC) $(OBJS) Makefile.in
 	$(WINEGCC) -shared $(srcdir)/$(MAINSPEC) $(OBJS) $(EXTRADLLFLAGS) -o $@ $(DELAYIMPORTS:%=-l%) $(IMPORTS:%=-l%) $(DELAYIMPORTS:%=-Wb,-d%) $(ALL_LIBS)
 
-# Rules for import libraries
-
-IMPLIB_CROSSOBJS = $(IMPLIB_OBJS:.o=.cross.o)
-
-.PHONY: $(IMPLIB_SRCS:%=__static_implib__%)
-
-all: $(IMPORTLIBFILE) $(IMPLIB_SRCS:%=__static_implib__%) @CROSSTEST_DISABLE@ $(IMPORTLIB:%=lib%.cross.a)
-
-$(IMPLIB_SRCS:%=__static_implib__%): $(STATICIMPLIB)
-
-$(IMPORTLIB:%=lib%.def): $(MAINSPEC)
-	$(WINEBUILD) $(IMPLIBFLAGS) -w --def -o $@ --export $(srcdir)/$(MAINSPEC)
-
-$(IMPORTLIB:%=lib%.def.a): $(IMPLIB_OBJS)
-	$(RM) $@
-	$(AR) $(ARFLAGS) $@ $(IMPLIB_OBJS)
-	$(RANLIB) $@
-
-$(IMPORTLIB:%=lib%.a): $(MAINSPEC) $(IMPLIB_OBJS)
-	$(WINEBUILD) $(IMPLIBFLAGS) -w --implib -o $@ --export $(srcdir)/$(MAINSPEC) $(IMPLIB_OBJS)
-
-$(IMPORTLIB:%=lib%.cross.a): $(MAINSPEC) $(IMPLIB_CROSSOBJS)
-	$(WINEBUILD) $(IMPLIBFLAGS) $(CROSSTARGET:%=-b %) -w --implib -o $@ --export $(srcdir)/$(MAINSPEC) $(IMPLIB_CROSSOBJS)
-
 # Rules for auto documentation
 
 manpages:: $(C_SRCS) dummy
@@ -62,9 +34,4 @@ sgmlpages:: $(C_SRCS) dummy
 xmlpages:: $(C_SRCS) dummy
 	$(C2MAN) -o $(top_builddir)/documentation/api-guide-xml -R$(top_builddir) -C$(srcdir) $(INCLUDES) -Tx $(MAINSPEC:%=-w %) $(C_SRCS)
 
-# Misc. rules
-
-clean::
-	$(RM) $(IMPORTLIBFILE)
-
 # End of global dll rules
diff --git a/dlls/krnl386.exe16/Makefile.in b/dlls/krnl386.exe16/Makefile.in
index 6c7e5ea..4facf93 100644
--- a/dlls/krnl386.exe16/Makefile.in
+++ b/dlls/krnl386.exe16/Makefile.in
@@ -2,7 +2,6 @@ MODULE    = krnl386.exe16
 IMPORTLIB = kernel
 IMPORTS   = winecrt0 kernel32 ntdll
 DELAYIMPORTS = ddraw dsound user32
-EXTRAIMPLIBFLAGS = -m16
 EXTRADLLFLAGS = -m16 -nodefaultlibs -Wb,--dll-name,kernel
 EXTRARCFLAGS  = -m16
 




More information about the wine-cvs mailing list