# 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)

@MAKE_RULES@

all: $(MODULE:%=lib%.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
