gimp/plug-ins/makefile.msc
Tor Lillqvist ef9bef7d25 Use the DEBUG nmake variable to determine whether to build for debugging
* */makefile.msc: Use the DEBUG nmake variable to determine
	whether to build for debugging or not.

	* libgimp/gimp.def: Add some missing entry points.

	* plug-ins/makefile.msc: Redo as to Yosh's reorg of the
 	sources. Add some plug-ins missing earlier. (For instance print,
 	which only prints to files on Win32. We still need a real Win32
 	print plug-in. Much code probably could be lifted from the bmp
 	plug-in.)

	* plug-ins/MapObject/arcball.c: Change Qt_ToMatrix() to void,
 	instead of returning the address of its parameter (dubious
 	practise), as its value is never used anyway.

	For the following changes, thanks to Hans Breuer:

	* plug-ins/FractalExplorer/Dialogs.h: Check for feof, not to get
	into an endless loop on malformed files.

	* plug-ins/common/header.c: Support indexed images.

	* plug-ins/common/sunras.c
	* plug-ins/common/xwd.c
	* plug-ins/print/print.h
	* plug-ins/sgi/sgi.h: Include config.h, guard inclusion of
 	unistd.h.

	* plug-ins/print/print.c: Guard for SIGBUS being undefined. Open
 	output file in binary mode.

	* po/makefile.msc: Add no.
1999-06-28 17:54:19 +00:00

420 lines
9.5 KiB
Plaintext

# Makefile to build the GIMP plug-ins with Microsoft nmake and compiler
# I don't want to use many hand-written makefiles, so this is quite complex.
# This same makefile is also included by sub-makes called as subroutines.
# Various parts of this file are used when makeing from the plug-ins directory,
# and when building individual plug-ins and the three plug-in libraries.
INSTALL = copy
GIMP = C:\gimp
BIN = $(GIMP)\plug-ins
!IFNDEF LIBRARY
!IFNDEF PLUGIN
# This part is used when making from the plug-ins directory
FROMPLUGINSDIR=YES # Used to bypass other parts below
# List plug-ins. We must use several lists to work around nmake's limits
# The COMMON* ones are in the common subdirectory
COMMON1 = CEL CML_explorer align_layers animationplay animoptimize apply_lens autocrop autostretch_hsv blinds blur borderaverage bumpmap c_astretch checkerboard colorify compose convmatrix cubism
COMMON2 = decompose deinterlace depthmerge despeckle destripe diffraction displace edge emboss engrave exchange film flarefx fractaltrace
COMMON3 = gauss_iir gauss_rle gbr gee gicon gif gifload glasstile gqbist gradmap grid gtm guillotine header hot hrz gz illusion jigsaw jpeg laplace lic
COMMON4 = mapcolor max_rgb mblur newsprint nlfilt noisify normalize nova oilify palette papertile pat pcx pix pixelize plasma plugindetails png pnm polar ps psd randomize ripple rotate rotators
COMMON5 = scatter_hsv semiflatten sharpen shift smooth_palette snoise sobel sparkle spread tga threshold_alpha tiff tile tileit tiler video vinvert vpropagate waves whirlpinch wind wmf xbm zealouscrop
# These have own subdirectories each
SEPARATE = AlienMap FractalExplorer Lighting MapObject bmp dbbrowser faxg3 fits flame fp gfig gfli ifscompose maze mosaic pagecurl print rcm sgi sinus struc unsharp
# These are unofficial, ie not in the CVS. To build these, you should
# get tml's source snapshot and copy this makefile to the
# ..\unofficial-plug-ins directory, and do "nmake -f makefile.msc unofficial".
UNOFFICIAL = guash user_filter twain
# The main target
all : ..\config.h libs-all common-plugins-all separate-plugins-all
..\config.h : ..\config.h.win32
copy ..\config.h.win32 ..\config.h
install : libs-install common-plugins-install separate-plugins-install scripts-install
unofficial:
for %d in ($(UNOFFICIAL)) do nmake -nologo -f makefile.msc sub-one-separate DIR=%d TARGET=install
clean : libs-clean common-plugins-clean separate-plugins-clean
libs-all :
@nmake -nologo -f makefile.msc sub-libs TARGET=all
libs-install :
@nmake -nologo -f makefile.msc sub-libs TARGET=install
libs-clean :
@nmake -nologo -f makefile.msc sub-libs TARGET=clean
sub-libs:
cd megawidget
nmake -nologo -f ..\makefile.msc TOP=..\.. LIBRARY=megawidget $(TARGET)
cd ..
cd gpc
nmake -nologo -f ..\makefile.msc TOP=..\.. LIBRARY=gpc $(TARGET)
cd ..
cd libgck\gck
nmake -nologo -f ..\..\makefile.msc TOP=..\..\.. LIBRARY=gck OBJECTS="gckcolor.obj gcklistbox.obj gckmath.obj gckui.obj gckvector.obj" $(TARGET)
cd ..\..
common-plugins-all :
@nmake -nologo -f makefile.msc sub-common-plugins TARGET=all
common-plugins-install :
@nmake -nologo -f makefile.msc sub-common-plugins TARGET=install
common-plugins-clean :
@nmake -nologo -f makefile.msc sub-common-plugins TARGET=clean
sub-common-plugins :
for %d in ($(COMMON1)) do nmake -nologo -f makefile.msc sub-one-common DIR=%d TARGET=$(TARGET)
for %d in ($(COMMON2)) do nmake -nologo -f makefile.msc sub-one-common DIR=%d TARGET=$(TARGET)
for %d in ($(COMMON3)) do nmake -nologo -f makefile.msc sub-one-common DIR=%d TARGET=$(TARGET)
for %d in ($(COMMON4)) do nmake -nologo -f makefile.msc sub-one-common DIR=%d TARGET=$(TARGET)
for %d in ($(COMMON5)) do nmake -nologo -f makefile.msc sub-one-common DIR=%d TARGET=$(TARGET)
sub-one-common :
@cd common
@nmake -nologo -f ..\makefile.msc TOP=..\.. PLUGIN=$(DIR) EXTRA_$(DIR)=1 $(TARGET)
separate-plugins-all :
@nmake -nologo -f makefile.msc sub-separate-plugins TARGET=all
separate-plugins-install :
@nmake -nologo -f makefile.msc sub-separate-plugins TARGET=install
separate-plugins-clean :
@nmake -nologo -f makefile.msc sub-separate-plugins TARGET=clean
sub-separate-plugins :
for %d in ($(SEPARATE)) do nmake -nologo -f makefile.msc sub-one-separate DIR=%d TARGET=$(TARGET)
# We must handle script-fu separately because of the dash, sigh
@cd script-fu
@nmake -nologo -f ..\makefile.msc TOP=..\.. PLUGIN=script-fu EXTRA_script_fu=1 $(TARGET)
@cd ..
sub-one-separate :
cd $(DIR)
nmake -nologo -f ..\makefile.msc TOP=..\.. PLUGIN=$(DIR) EXTRA_$(DIR)=1 $(TARGET)
scripts-install :
$(INSTALL) script-fu\scripts\*.scm $(GIMP)\scripts
$(INSTALL) script-fu\scripts\*.jpg $(GIMP)\scripts
$(INSTALL) FractalExplorer\fractalexplorer-examples\* $(GIMP)\fractalexplorer
del $(GIMP)\fractalexplorer\Makefile.am
!ENDIF
!ENDIF
!IFNDEF FROMPLUGINSDIR
# This part is used when building individual plug-ins or one of
# the libraries.
!IFDEF EXTRA_Lighting
OBJECTS = \
lighting_apply.obj \
lighting_image.obj \
lighting_main.obj \
lighting_preview.obj \
lighting_shade.obj \
lighting_ui.obj
!ENDIF
!IFDEF EXTRA_MapObject
OBJECTS = \
arcball.obj \
mapobject_apply.obj \
mapobject_image.obj \
mapobject_main.obj \
mapobject_preview.obj \
mapobject_shade.obj \
mapobject_ui.obj
!ENDIF
!IFDEF EXTRA_bmp
OBJECTS = \
bmp.obj \
bmpread.obj \
bmpwrite.obj
!ENDIF
!IFDEF EXTRA_dbbrowser
OBJECTS = \
dbbrowser.obj \
dbbrowser_utils.obj
!ENDIF
!IFDEF EXTRA_faxg3
OBJECTS = \
faxg3.obj \
g3.obj \
run_tbl.obj
!ENDIF
!IFDEF EXTRA_fits
OBJECTS = \
fits.obj \
fitsrw.obj
!ENDIF
!IFDEF EXTRA_flame
OBJECTS = \
cmap.obj \
flame.obj \
libifs.obj \
rect.obj
!ENDIF
!IFDEF EXTRA_fp
OBJECTS = \
fp.obj \
fp_gdk.obj \
fp_gtk.obj \
fp_hsv.obj \
fp_misc.obj
!ENDIF
!IFDEF EXTRA_gdyntext
# Doesn't compile yet, though, so not included in list above
OBJECTS = \
charmap.obj \
charmap_window.obj \
font_selection.obj \
gdyntext.obj \
gdyntext_ui.obj \
message_window.obj
!ENDIF
!IFDEF EXTRA_gfli
OBJECTS = \
fli.obj \
gfli.obj
!ENDIF
!IFDEF EXTRA_ifscompose
OBJECTS = \
ifscompose.obj \
ifscompose_utils.obj
!ENDIF
!IFDEF EXTRA_jpeg
# Location of jpeg-6b sources
JPEG = $(TOP)\..\jpeg-6b
EXTRACFLAGS = -I$(JPEG)
EXTRALIBS = $(JPEG)\libjpeg.lib
!ENDIF
!IFDEF EXTRA_maze
OBJECTS = \
algorithms.obj \
handy.obj \
maze.obj \
maze_face.obj
!ENDIF
!IFDEF EXTRA_png
# Location of libpng sources
PNG = $(TOP)\..\libpng-1.0.3
# And zlib
ZLIB = $(TOP)\..\zlib-1.1.3
EXTRACFLAGS = -I$(PNG) -I$(ZLIB)
EXTRALIBS = $(PNG)\libpng.lib $(ZLIB)\zlib.lib
!ENDIF
!IFDEF EXTRA_print
OBJECTS = \
print.obj \
print-escp2.obj \
print-pcl.obj \
print-ps.obj \
print-util.obj
!ENDIF
!IFDEF EXTRA_rcm
OBJECTS = \
rcm.obj \
rcm_callback.obj \
rcm_dialog.obj \
rcm_gdk.obj \
rcm_misc.obj
OPTIMIZE =
!ENDIF
!IFDEF EXTRA_script_fu
OBJECTS = \
interp_md5.obj \
interp_regex.obj \
interp_slib.obj \
interp_sliba.obj \
interp_trace.obj \
script-fu.obj \
script-fu-console.obj \
script-fu-scripts.obj \
regex.obj
EXTRALIBS = ..\dbbrowser\dbbrowser_utils.obj
EXTRACFLAGS = -DREGEX_MALLOC
HAVE_RESOURCE = YES
!ENDIF
!IFDEF EXTRA_sgi
OBJECTS = \
sgi.obj \
sgilib.obj
!ENDIF
!IFDEF EXTRA_tiff
# Location of tiff-3.4 sources
TIFF = $(TOP)\..\tiff-v3.4\libtiff
# Location of jpeg-6b sources
JPEG = $(TOP)\..\jpeg-6b
# And zlib
ZLIB = $(TOP)\..\zlib-1.1.3
EXTRACFLAGS = -I$(TIFF)
EXTRALIBS = $(TIFF)\libtiff.lib $(JPEG)\libjpeg.lib $(ZLIB)\zlib.lib user32.lib
!ENDIF
!IFDEF EXTRA_unsharp
OBJECTS = \
dialog_f.obj \
unsharp.obj
!ENDIF
!IFDEF EXTRA_guash
HAVE_RESOURCE = YES
!ENDIF
!IFDEF EXTRA_user_filter
OBJECTS = \
libyywrap.obj \
uf_eval.obj \
uf_file.obj \
uf_gui.obj \
uf_lexer.obj \
uf_main.obj \
uf_parser.tab.obj
!ENDIF
!IFDEF EXTRA_twain
OBJECTS = \
tw_func.obj \
tw_util.obj \
twain.obj
EXTRALIBS = user32.lib
!ENDIF
GIMP_VER = 1.1
GTK_VER = 1.3
GLIB_VER = 1.3
GTK = $(TOP)\..\gtk+
GLIB = $(TOP)\..\glib
GETTEXT = $(TOP)\..\gettext-0.10.35
PLUGINDIR = $(TOP)\plug-ins
!IFNDEF OPTIMIZE
!IFNDEF DEBUG
OPTIMIZE = -Ox
!ELSE
OPTIMIZE = -Zi
!ENDIF
!ENDIF
!IFNDEF DEBUG
LINKDEBUG =
RTL = -MD
!ELSE
LINKDEBUG = /debug
RTL = -MDd
!ENDIF
CC = cl -nologo -G5 -GF $(OPTIMIZE) $(RTL) -W2 -Zm200
CFLAGS = -DHAVE_CONFIG_H $(EXTRACFLAGS) -I. -I$(TOP) -I$(PLUGINDIR) -I$(PLUGINDIR)\libgck -I$(GLIB) -I$(GTK)\gdk\win32 -I$(GTK) -I$(GETTEXT)\intl
LDFLAGS = /link /subsystem:windows /machine:ix86 $(LINKDEBUG)
!IFDEF PLUGIN
# This part is used when building individual plug-ins
all : $(PLUGIN).exe
install : all
$(INSTALL) $(PLUGIN).exe $(BIN)
!IFNDEF OBJECTS
OBJECTS = $(PLUGIN).obj
!ENDIF
!IFDEF HAVE_RESOURCE
# Do we have our own resource file (just an icon, usually)
RESOURCE = $(PLUGIN).res
!ELSE
# Use the Wilber icon otherwise. If gimp.exe sometime gets more resources,
# this will have to be changed.
RESOURCE = ..\..\app\gimp.res
!ENDIF
$(PLUGIN).exe : $(OBJECTS) $(RESOURCE)
$(CC) $(CFLAGS) -MD -Fe$(PLUGIN).exe $(OBJECTS) $(RESOURCE) $(PLUGINDIR)\megawidget\megawidget.lib $(PLUGINDIR)\gpc\gpc.lib $(PLUGINDIR)\libgck\gck\gck.lib ..\..\libgimp\gimp-$(GIMP_VER).lib ..\..\libgimp\gimpui-$(GIMP_VER).lib $(GTK)\gtk\gtk-$(GTK_VER).lib $(GTK)\gdk\win32\gdk-$(GTK_VER).lib $(GETTEXT)\intl\gnu-intl.lib $(GLIB)\glib-$(GLIB_VER).lib $(EXTRALIBS) $(LDFLAGS)
$(PLUGIN).res : $(PLUGIN).rc
rc -r -fo $(PLUGIN).res $(PLUGIN).rc
!ENDIF
!IFDEF LIBRARY
# This part is used when building a library
all : $(LIBRARY).lib
install : all
!IFNDEF OBJECTS
OBJECTS = $(LIBRARY).obj
!ENDIF
$(LIBRARY).lib : $(OBJECTS)
lib /out:$(LIBRARY).lib $(OBJECTS)
!ENDIF
.c.obj :
$(CC) $(CFLAGS) -c $<
clean :
erase *.obj
erase *.lib
erase *.exp
erase *.exe
erase *.pdb
erase *.ilk
!ENDIF