DLLEXT=dll

ifeq ($(BUILDINGDLL),YES)
BASEFILE=$(SUBLIB).base
EXPFILE=$(SUBLIB).exp

EXTRARMFILES=$(CW32BASE) $(CW32EXP)

EXPORTSFILE=$(EXPSYMS).def

builditall:: all

$(EXPORTSFILE): EXPSYMS
	echo "EXPORTS" > $(EXPORTSFILE)
	cat EXPSYMS >> $(EXPORTSFILE)
endif

W32LIBGGIDLL=ggi.dll
W32LIBGGI_A=libggi.a

W32DLLIBS=-L$(LIBGGI_TOPLEVEL) -lggi $(SHLIBLDLIBS)

define HOST_SHLIB_RULE
	$(W32_CROSSSHLIBLINKER) -dll -o junk.tmp -Wl,--base-file,$(BASEFILE) $(SHLIBOBJECTS) $(W32DLLIBS)
	rm junk.tmp
	dlltool --as i386-mingw32-as --dllname ggi.dll --base-file $(BASEFILE) --output-exp $(EXPFILE) --def $(EXPORTSFILE)
	rm $(BASEFILE)
	$(W32_CROSSSHLIBLINKER) -dll -o ggi.dll $(SHLIBOBJECTS) $(EXPFILE) $(W32DLLIBS)
	rm $(EXPFILE) 
endef

define HOST_LIBGGI_RULE
	echo "EXPORTS" > libggi.def
	cat EXPSYMS >> libggi.def

	dlltool --as i386-mingw32-as --dllname $(W32LIBGGIDLL) --def libggi.def --output-lib $(W32LIBGGI_A)
	$(W32_CROSSSHLIBLINKER) -dll -mdll -o junk.tmp -Wl,--base-file,libggi.base $(SHLIBOBJECTS)
	rm junk.tmp
	dlltool --as i386-mingw32-as --dllname $(W32LIBGGIDLL) --base-file libggi.base --output-exp libggi.exp --def libggi.def
	rm libggi.base
	$(W32_CROSSSHLIBLINKER) -dll -mdll -o $(W32LIBGGIDLL) $(SHLIBOBJECTS) -Wl,libggi.exp
	rm libggi.exp
endef


W32_CROSSCC            = i386-mingw32-gcc
W32_CROSSSHLIBLINKER   = i386-mingw32-gcc
W32_CROSSSHLIBLDFLAGS  = -shared -Wl,-soname,$(SONAME) -Wl,-hidden -Wl,-exported_symbol,GGIdlinit -Wl,-exported_symbol,GGIdlcleanup
W32_CROSSSHLIBCFLAGS  +=
compilertype      = _GNU_
