# Global rules for building a static import library     -*-Makefile-*-
#
# Each individual makefile should define the following variables:
# MODULE       : name of the main module being built
#
# plus all variables required by the global Make.rules.in
#

DLLFLAGS = @DLLFLAGS@
DEFS     = -D__WINESRC__ $(EXTRADEFS)
INSTALLDIRS = $(DESTDIR)$(dlldir)
MAKEDEPFLAGS = -xo -xcross.o

@MAKE_RULES@

all: $(MODULE:%=lib%.a) @CROSSTEST_DISABLE@ $(MODULE:%=lib%.cross.a)

# Rules for .a library

$(MODULE:%=lib%.a): $(OBJS) Makefile.in
	$(RM) $@
	$(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)
	$(INSTALL_DATA) $(MODULE:%=lib%.a) $(DESTDIR)$(dlldir)/$(MODULE:%=lib%.a)

uninstall::
	$(RM) $(DESTDIR)$(dlldir)/$(MODULE:%=lib%.a)

# End of global library rules
