## Makefile for building the GIMP DLLs and LIBs with Microsoft C.
## Use: nmake -f makefile.msc

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

################################################################

# Nothing much configurable below

INCLUDES = -I.. 
DEFINES = -DGIMPDIR=\"$(GIMPDIR)\"
DEPCFLAGS = $(INTL_CFLAGS) $(GLIB_CFLAGS) $(GTK2_CFLAGS) 
DEPLIBS = $(GLIB_LIBS) $(INTL_LIBS) 

# CFLAGS = $(GLIB_CFLAGS) 

!IFNDEF DEBUG
# Debug Release!
OPTIMIZE = -Zi -MD
!ENDIF

all : \
	..\config.h \
#	gimpi.lib \
	gimp-$(GIMP_VER).dll \
	gimpui-$(GIMP_VER).dll

..\config.h : ..\config.h.win32
	copy ..\config.h.win32 ..\config.h

install : all
	$(INSTALL) gimp-$(GIMP_VER).dll $(BIN)
	$(INSTALL) gimpui-$(GIMP_VER).dll $(BIN)

PDB_WRAPPERS_O = \
	gimpbrushes_pdb.obj \
	gimpbrushselect_pdb.obj \
	gimpchannel_pdb.obj \
	gimpcolor_pdb.obj \
	gimpconvert_pdb.obj \
	gimpdisplay_pdb.obj \
	gimpdrawable_pdb.obj \
	gimpedit_pdb.obj \
	gimpfileops_pdb.obj \
	gimpfloatingsel_pdb.obj \
	gimpfonts_pdb.obj \
	gimpfontselect_pdb.obj \
	gimpgimprc_pdb.obj \
	gimpgradients_pdb.obj \
	gimpgradientselect_pdb.obj \
	gimpguides_pdb.obj \
	gimphelp_pdb.obj \
	gimpimage_pdb.obj \
	gimplayer_pdb.obj \
	gimpmessage_pdb.obj \
	gimpmisc_pdb.obj \
	gimppainttools_pdb.obj \
	gimppalette_pdb.obj \
	gimppalettes_pdb.obj \
	gimppaletteselect_pdb.obj \
	gimpparasite_pdb.obj \
	gimppaths_pdb.obj \
	gimppatterns_pdb.obj \
	gimppatternselect_pdb.obj \
	gimpplugin_pdb.obj \
	gimpproceduraldb_pdb.obj \
	gimpselection_pdb.obj \
	gimpselectiontools_pdb.obj \
	gimptexttool_pdb.obj \
	gimptransformtools_pdb.obj \
	gimpundo_pdb.obj \
	gimpunit_pdb.obj \


# used by libgimp and core (?)
gimpi_OBJECTS = \
	gimpenv.obj \
	gimpparasite.obj \
	gimpparasiteio.obj \
	gimpprotocol.obj \
	gimputils.obj \
#	gimpsignal.obj \
	gimpwire.obj

gimpi.lib : $(gimpi_OBJECTS)
	lib /out:gimpi.lib $(gimpi_OBJECTS)

gimp_OBJECTS = \
	gimp.obj \
	$(PDB_WRAPPERS_O) \
#	$(gimpi_OBJECTS) \
	gimpbrushselect.obj \
	gimpchannel.obj \
	gimpdrawable.obj \
	gimpfontselect.obj \
	gimpgradientselect.obj \
#	gimphelp.obj \
	gimpimage.obj \
	gimplayer.obj \
	gimppaletteselect.obj \
	gimppatternselect.obj \
	gimppixelfetcher.obj \
	gimppixelrgn.obj \
	gimpplugin.obj \
	gimpproceduraldb.obj \
	gimpregioniterator.obj \
	gimpselection.obj \
	gimptile.obj \
	gimpunitcache.obj \

#?	gimpprotocol.obj \

gimp-$(GIMP_VER).dll : $(gimp_OBJECTS) gimp.def
	$(CC) $(CFLAGS) -LD -Fegimp-$(GIMP_VER).dll $(gimp_OBJECTS) $(DEPLIBS) \
	..\libgimpcolor\gimpcolor-$(GIMP_VER).lib \
	..\libgimpbase\gimpbase-$(GIMP_VER).lib \
	$(LDFLAGS) user32.lib /def:gimp.def

# Pass -DLIBGIMP_COMPILATION when compiling gimp.c

gimp.obj : gimp.c
	$(CC) $(CFLAGS) -GD -c -DLIBGIMP_COMPILATION gimp.c

gimpui_OBJECTS = \
	gimpui.obj \
	gimpbrushmenu.obj \
	gimpdrawablecombobox.obj \
	gimpfontmenu.obj \
	gimpfontselect_pdb.obj \
	gimpgradientmenu.obj \
	gimpmenu.obj \
	gimpimagecombobox.obj \
	gimppatternmenu.obj \
	gimppalettemenu.obj \
	gimppixbuf.obj \
	gimpexport.obj \
#	gimppatheditor.obj \

gimpui-$(GIMP_VER).dll : $(gimpui_OBJECTS) gimpui.def
	$(CC) $(CFLAGS) -LD -Fegimpui-$(GIMP_VER).dll $(gimpui_OBJECTS) \
	gimp-$(GIMP_VER).lib ..\libgimpcolor\gimpcolor-$(GIMP_VER).lib \
	..\libgimpmodule\gimpmodule-$(GIMP_VER).lib \
	..\libgimpwidgets\gimpwidgets-$(GIMP_VER).lib \
	..\libgimpbase\gimpbase-$(GIMP_VER).lib \
	$(GTK2_LIBS) $(INTL_LIBS) $(DEPLIBS) $(LDFLAGS) /def:gimpui.def

# gimpwidgets only for gimp_dialog_new

gimpmenu.obj : gimpmenu.c
	$(CC) $(CFLAGS) -GD -c gimpmenu.c

gimpbrushmenu.obj : gimpbrushmenu.c
	$(CC) $(CFLAGS) -GD -c gimpbrushmenu.c

gimpgradientmenu.obj : gimpgradientmenu.c
	$(CC) $(CFLAGS) -GD -c gimpgradientmenu.c

gimppatternmenu.obj : gimppatternmenu.c
	$(CC) $(CFLAGS) -GD -c gimppatternmenu.c

# General rule for compiling, used by the objects that don't go into
# gimp-$(GIMP_VER).dll. 
.c.obj:
	$(CC) $(CFLAGS) -c $<

clean::
	del *.exe
	del *.obj
	del *.exp
	del *.err
	del *.map
