!IFNDEF PACKAGE

# dummy
PLUGINS = cairo cgm dxf hpgl metapost pixbuf pstricks shape svg wmf wpg xfig xslt

#broken since StdProp overhaul : diaimport 

# The main target
all : sub-all

sub-all: 
	for %d in ($(PLUGINS)) do nmake -nologo -f makefile.msc sub-one THIS=%d

sub-one:
	@cd $(THIS)
	@nmake -nologo -f ..\makefile.msc $(THIS).dll PACKAGE=$(THIS) OBJ_$(THIS)=1
	@cd ..

clean:
	for %d in ($(PLUGINS)) do nmake -nologo -f makefile.msc sub-clean THIS=%d

sub-clean:
	@cd $(THIS)
	@nmake -nologo -f ..\makefile.msc PACKAGE=$(THIS) clean
	@cd ..

!ELSE

TOP = ..\..\..
PRJ_TOP = ..\..
PKG_DEF = ..\objects.def

!INCLUDE $(TOP)\glib\build\win32\make.msc

PKG_CFLAGS = -FImsvc_recommended_pragmas.h \
	$(GLIB_CFLAGS) $(GTK2_CFLAGS) \
	-I. $(LIBXML2_CFLAGS) -I$(PRJ_TOP)\lib \

PKG_LINK = $(GTK2_LIBS) $(GLIB_LIBS) \
	$(LIBXML2_LIBS) $(GDK_PIXBUF_LIBS) \
	$(INTL_LIBS) \
	$(PRJ_TOP)\lib\libdia.lib

#
# Special object definitions for the various plugins, if needed
#

!IFDEF OBJ_cairo
PKG_CFLAGS = $(PKG_CFLAGS) $(CAIRO_CFLAGS)
PKG_LINK = $(PKG_LINK) $(CAIRO_LIBS)
OBJECTS = diacairo.obj
!ENDIF

!IFDEF OBJ_dxf
OBJECTS = \
  dxf.obj \
  dxf-export.obj \
  dxf-import.obj
!ENDIF

!IFDEF OBJ_metapost
OBJECTS = \
  metapost.obj \
  render_metapost.obj
!ENDIF

!IFDEF OBJ_pstricks
OBJECTS = \
  pstricks.obj \
  render_pstricks.obj
!ENDIF

!IFDEF OBJ_shape
OBJECTS = \
  shape.obj \
  shape-export.obj
!ENDIF

!IFDEF OBJ_svg
OBJECTS = \
  svg.obj \
  svg-import.obj \
  render_svg.obj
!ENDIF

!IFDEF OBJ_wmf
OBJECTS = \
  wmf.obj \
  wmf_gdi.obj
!ENDIF

!IFDEF OBJ_xfig
OBJECTS = \
  xfig.obj \
  xfig-common.obj \
  xfig-export.obj \
  xfig-import.obj
!ENDIF

!IFDEF OBJ_xslt
EXTRACFLAGS = -DWIN32 $(LIBXSLT_CFLAGS)
EXTRALIBS = $(LIBXSLT_LIBS)
OBJECTS = xslt.obj \
	xsltdialog.obj
!ENDIF

# just one file ...
!IFNDEF OBJECTS
OBJECTS = $(PACKAGE).obj
!ENDIF

CFLAGS = -I. -I$(PRJ_TOP) -DHAVE_CONFIG_H $(EXTRACFLAGS)

$(PACKAGE).lib : $(OBJECTS)
	lib /out:$(PACKAGE).lib $(OBJECTS)

$(PACKAGE).dll : $(OBJECTS) $(PKG_DEF)
	$(CC) $(CFLAGS) -LD -Fe$(PACKAGE).dll $(OBJECTS) \
	$(PKG_LINK) $(EXTRALIBS) user32.lib advapi32.lib wsock32.lib $(LDFLAGS) /def:$(PKG_DEF)
$(PRJ_TOP)\config.h: $(PRJ_TOP)\config.h.win32
	copy $(PRJ_TOP)\config.h.win32 $(PRJ_TOP)\config.h

.cpp.obj :
	$(CC) $(CFLAGS) -GD -c $(PKG_CFLAGS) $<

.c.obj :
	$(CC) $(CFLAGS) -GD -c $(PKG_CFLAGS) $<

clean::
	del config.h
	del *.exe
	del *.obj
	del *.dll
	del *.lib
	del *.err
	del *.map
	del *.sym
	del *.exp
	del *.lk1
	del *.mk1
	del *.pdb
	del *.ilk

!ENDIF

