From 752b0e02eab20109beeefd897704aa962bc2912e Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Sat, 5 Oct 2013 23:52:47 +0200 Subject: [PATCH] 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 fb7ac3ee774..84a05c27646 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%.@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 30d68278904..9e2e1478644 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 b02225347a1..c67e7baee2f 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 3a226ce4432..2e231169c39 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%.@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 6c7e5eaf166..4facf93a0cd 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