| # Global rules for building dlls     -*-Makefile-*- | 
 | # | 
 | # Each individual makefile should define the following variables: | 
 | # MODULE       : name of the main module being built | 
 | # ALTNAMES     : alternate names for this dll (optional) | 
 | # IMPORTS      : dlls to import (optional) | 
 | # EXTRALIBS    : extra libraries to link in (optional) | 
 | # | 
 | # plus all variables required by the global Make.rules.in | 
 | # | 
 |  | 
 | DEFS       = @DLLFLAGS@ -D__WINE__ | 
 | LIBEXT     = @LIBEXT@ | 
 | SONAME     = lib$(MODULE).so | 
 | IMPORTLIBS = $(IMPORTS:%=$(DLLDIR)/lib%.$(LIBEXT)) | 
 | ALLNAMES   = lib$(MODULE).so $(ALTNAMES:%=lib%.so) | 
 | SPEC_SRCS  = $(ALTNAMES:%=%.spec) | 
 | ALL_OBJS   = $(MODULE).spec.o $(OBJS) | 
 | ALL_LIBS   = $(LIBWINE) $(EXTRALIBS) $(LIBS) | 
 |  | 
 | all: lib$(MODULE).$(LIBEXT) $(ALTNAMES:%=lib%.$(LIBEXT)) | 
 |  | 
 | @MAKE_RULES@ | 
 |  | 
 | # Rules for .so files | 
 |  | 
 | lib$(MODULE).so: $(ALL_OBJS) Makefile.in | 
 | 	$(LDSHARED) $(LDDLLFLAGS) $(ALL_OBJS) -o $@ -L$(DLLDIR) $(IMPORTS:%=-l%) $(ALL_LIBS) | 
 |  | 
 | $(ALTNAMES:%=lib%.$(LIBEXT)): lib$(MODULE).$(LIBEXT) | 
 | 	$(RM) $@ && $(LN_S) lib$(MODULE).$(LIBEXT) $@ | 
 |  | 
 | # Rules for .a files | 
 |  | 
 | lib$(MODULE).a: $(ALL_OBJS) Makefile.in | 
 | 	$(RM) $@ | 
 | 	$(AR) $@ $(ALL_OBJS) | 
 | 	$(RANLIB) $@ | 
 |  | 
 | # Rules for .dll files | 
 | lib$(MODULE).dll: $(ALL_OBJS) Makefile.in | 
 | 	$(DLLWRAP) $(DLLWRAPFLAGS) --implib lib$(MODULE).a -o lib$(MODULE).dll $(ALL_OBJS) -L$(DLLDIR) $(IMPORTS:%=-l%) $(ALL_LIBS) | 
 |  | 
 | # Rules for checking that no imports are missing | 
 |  | 
 | checklink:: lib$(MODULE).$(LIBEXT) | 
 | 	$(CC) -o checklink $(TOPSRCDIR)/library/checklink.c -L. -l$(MODULE) $(ALL_LIBS) && $(RM) checklink | 
 |  | 
 | # Rules for debug channels | 
 |  | 
 | debug_channels: dummy | 
 | 	$(TOPSRCDIR)/tools/make_debug $(MODULE).spec $(C_SRCS) $(SUBDIRS:%=%/*.c) | 
 |  | 
 | # Rules for installation | 
 |  | 
 | .PHONY: install_so install_a | 
 |  | 
 | $(ALTNAMES:%=_install_/lib%.$(LIBEXT)): $(LIBEXT:%=install_%) | 
 | 	cd $(libdir) && $(RM) `basename $@` && $(LN_S) lib$(MODULE).$(LIBEXT) `basename $@` | 
 |  | 
 | install_so: lib$(MODULE).so | 
 | 	[ -d $(libdir) ] || $(MKDIR) $(libdir) | 
 | 	$(INSTALL_PROGRAM) lib$(MODULE).so $(libdir)/lib$(MODULE).so | 
 |  | 
 | install_a: lib$(MODULE).a | 
 | 	[ -d $(libdir) ] || $(MKDIR) $(libdir) | 
 | 	$(INSTALL_DATA) lib$(MODULE).a $(libdir)/lib$(MODULE).a | 
 |  | 
 | install:: $(LIBEXT:%=install_%) $(ALTNAMES:%=_install_/lib%.$(LIBEXT)) | 
 |  | 
 | uninstall:: | 
 | 	cd $(libdir) && $(RM) lib$(MODULE).$(LIBEXT) $(ALTNAMES:%=lib%.$(LIBEXT)) |