Module: wine Branch: master Commit: 1f254216d109f7a1c74e5cc79fbc7869f46722ac URL: http://source.winehq.org/git/wine.git/?a=commit;h=1f254216d109f7a1c74e5cc79f...
Author: Alexandre Julliard julliard@winehq.org Date: Sat Jan 23 20:26:49 2010 +0100
makefiles: Add rules for cross-compiling static libraries.
---
Make.rules.in | 3 +++ configure | 4 ++-- configure.ac | 2 +- dlls/Makedll.rules.in | 7 ++++++- dlls/Makeimplib.rules.in | 5 +++++ 5 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/Make.rules.in b/Make.rules.in index 05e82bd..057d9b8 100644 --- a/Make.rules.in +++ b/Make.rules.in @@ -53,6 +53,9 @@ FONTFORGE = @FONTFORGE@ RSVG = @RSVG@ ICOTOOL = @ICOTOOL@ CROSSCC = @CROSSCC@ +CROSSTARGET = @CROSSTARGET@ +CROSSAR = $(CROSSTARGET)-ar +CROSSRANLIB = $(CROSSTARGET)-ranlib FAKEEXT = $(DLLEXT:.so=.fake) INCLUDES = -I$(SRCDIR) -I. -I$(TOPSRCDIR)/include -I$(TOPOBJDIR)/include $(EXTRAINCL) EXTRACFLAGS = @EXTRACFLAGS@ diff --git a/configure b/configure index f856b23..9eabf3c 100755 --- a/configure +++ b/configure @@ -653,7 +653,7 @@ X_PRE_LIBS X_CFLAGS XMKMF LIBPTHREAD -CROSSTARGETFLAGS +CROSSTARGET CROSSTEST CROSSCC CARBONLIB @@ -6950,7 +6950,7 @@ test -n "$CROSSCC" || CROSSCC="false" done if test -n "$target" then - CROSSTARGETFLAGS="-b $target" + CROSSTARGET="$target"
fi fi diff --git a/configure.ac b/configure.ac index ef95fe7..4e9d263 100644 --- a/configure.ac +++ b/configure.ac @@ -772,7 +772,7 @@ then done if test -n "$target" then - AC_SUBST(CROSSTARGETFLAGS,"-b $target") + AC_SUBST(CROSSTARGET,"$target") fi fi fi diff --git a/dlls/Makedll.rules.in b/dlls/Makedll.rules.in index 044d336..c3c8c67 100644 --- a/dlls/Makedll.rules.in +++ b/dlls/Makedll.rules.in @@ -28,6 +28,8 @@ $(MODULE) $(MODULE).so $(MODULE).fake: $(MAINSPEC) $(OBJS) Makefile.in
# Rules for import libraries
+IMPLIB_CROSSOBJS = $(IMPLIB_OBJS:.o=.cross.o) + .PHONY: implib $(IMPLIB_SRCS:%=__static_implib__%)
all implib: $(IMPORTLIBFILE) $(IMPLIB_SRCS:%=__static_implib__%) @@ -43,7 +45,10 @@ $(IMPORTLIB:%=lib%.def.a): $(IMPLIB_OBJS) $(RANLIB) $@
$(IMPORTLIB:%=lib%.a): $(MAINSPEC) $(IMPLIB_OBJS) - $(WINEBUILD) $(IMPLIBFLAGS) @CROSSTARGETFLAGS@ -w --implib -o $@ --export $(SRCDIR)/$(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)
$(SUBDIRS): implib
diff --git a/dlls/Makeimplib.rules.in b/dlls/Makeimplib.rules.in index 380101f..da36eee 100644 --- a/dlls/Makeimplib.rules.in +++ b/dlls/Makeimplib.rules.in @@ -21,6 +21,11 @@ $(MODULE:%=lib%.a): $(OBJS) Makefile.in $(AR) $(ARFLAGS) $@ $(OBJS) $(RANLIB) $@
+$(MODULE:%=lib%.cross.a): $(CROSSOBJS) Makefile.in + $(RM) $@ + $(CROSSAR) $(ARFLAGS) $@ $(CROSSOBJS) + $(CROSSRANLIB) $@ + # Rules for installation
install install-dev:: $(MODULE:%=lib%.a) $(DESTDIR)$(dlldir)