gimp/plug-ins/makefile.msc

930 lines
23 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
# This is what I use as installation target, from where the installer-builder
# will pick it up.
GIMP = C:\install\gimp
BIN = $(GIMP)\plug-ins
!IFNDEF GIMPTOP
GIMPTOP = ..
!ENDIF
TOP = ..\$(GIMPTOP)
!INCLUDE $(TOP)\glib\build\win32\make.msc
!INCLUDE $(GIMPTOP)\gimpdefs.msc
!IFNDEF LIBRARY
!IFNDEF PLUGIN
!IFNDEF MODULE
# 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
COMMON0 = alien-map align-layers animation-optimize animation-play antialias apply-canvas
COMMON1 = blinds blur-gauss-selective blur-gauss blur-motion blur border-average bump-map
COMMON2 = cartoon channel-mixer checkerboard cml-explorer color-cube-analyze color-enhance color-exchange color-to-alpha colorify colormap-remap compose contrast-normalize contrast-retinex contrast-stretch-hsv contrast-stretch convolution-matrix crop-auto crop-zealous cubism curve-bend
COMMON3 = decompose deinterlace depth-merge despeckle destripe diffraction displace edge-dog edge-laplace edge-neon edge-sobel edge emboss engrave
## file-aa file-mng file-pdf file-wmf file-xpm
COMMON4 = file-cel file-compressor file-csource file-desktop-link file-dicom file-gbr file-gif-load file-gif-save file-gih file-glob file-header file-html-table file-pat file-pcx file-pix file-png file-pnm file-ps file-psp file-raw file-sunras file-svg file-tga file-tiff-load file-tiff-save file-xbm file-xwd film filter-pack fractal-trace
## mail
COMMON5 = gee-zoom gee gradient-map grid guillotine hot illusion iwarp jigsaw lcms lens-apply lens-distortion lens-flare max-rgb mosaic newsprint nl-filter noise-hsv noise-randomize noise-rgb noise-solid noise-spread nova oilify photocopy pixelize plasma plugin-browser polar-coords procedure-browser qbist red-eye-removal ripple rotate
COMMON6 = sample-colorize screenshot semi-flatten sharpen shift sinus smooth-palette softglow sparkle sphere-designer
COMMON7 = threshold-alpha tile-glass tile-paper tile-seamless tile-small tile unit-editor unsharp-mask value-invert value-propagate van-gogh-lic video warp waves web-browser whirl-pinch wind
# These have own subdirectories each
SEPARATE = lighting gfig gimpressionist imagemap maze metadata pagecurl twain print help
## help-browser
SEPARATE_DASH = color-rotate file-bmp file-faxg3 file-fits file-fli file-ico file-jpeg file-psd file-sgi file-uri file-xjt fractal-explorer gradient-flare ifs-compose map-object selection-to-path win-snap
# 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, go there, and do "nmake -f makefile.msc unofficial".
UNOFFICIAL = Anamorphose DigitalSignature RGB_Displace gimp_ace guash sel_gauss magiceye user_filter
# 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 data-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 script-fu\tinyscheme
nmake -nologo -f ..\..\makefile.msc GIMPTOP=..\..\.. EXTRACFLAGS="-DWIN32 -DUSE_MATH -DUSE_INTERFACE -DSTANDALONE=0" \
MODULE=tinyscheme OBJECTS="dynload.obj scheme.obj" $(TARGET)
cd ..\..
cd script-fu\ftx
nmake -nologo -f ..\..\makefile.msc GIMPTOP=..\..\.. EXTRACFLAGS="-DWIN32 -I.. -DUSE_INTERFACE" \
MODULE=ftx OBJECTS="ftx.obj" EXTRA_EXPORT=/export:init_ftx $(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-one-common TARGET=clean
sub-common-plugins :
for %d in ($(COMMON0)) do nmake -nologo -f makefile.msc sub-one-common DIR=%d TARGET=$(TARGET)
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)
for %d in ($(COMMON6)) do nmake -nologo -f makefile.msc sub-one-common DIR=%d TARGET=$(TARGET)
for %d in ($(COMMON7)) do nmake -nologo -f makefile.msc sub-one-common DIR=%d TARGET=$(TARGET)
sub-one-common :
@cd common
@nmake -nologo -f ..\makefile.msc GIMPTOP=..\.. PLUGIN=$(DIR) $(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)
for %d in ($(SEPARATE_DASH)) do nmake -nologo -f makefile.msc sub-one-separate-dash DIR=%d TARGET=$(TARGET)
sub-one-separate :
cd $(DIR)
nmake -nologo -f ..\makefile.msc GIMPTOP=..\.. PLUGIN=$(DIR) EXTRA_$(DIR)=1 $(TARGET)
sub-one-separate-dash :
cd $(DIR)
nmake -nologo -f ..\makefile.msc GIMPTOP=..\.. PLUGIN=$(DIR) $(TARGET)
data-install : gimpressionist-data-install guash-data-install
-md $(GIMP)\scripts
$(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
gimpressionist-data-install :
-md $(GIMP)\gimpressionist
-md $(GIMP)\gimpressionist\Brushes
-md $(GIMP)\gimpressionist\Paper
-md $(GIMP)\gimpressionist\Presets
$(INSTALL) gimpressionist\Brushes\*.pgm $(GIMP)\gimpressionist\Brushes
$(INSTALL) gimpressionist\Brushes\*.ppm $(GIMP)\gimpressionist\Brushes
$(INSTALL) gimpressionist\Paper\*.pgm $(GIMP)\gimpressionist\Paper
$(INSTALL) gimpressionist\Presets\* $(GIMP)\gimpressionist\Presets
del $(GIMP)\gimpressionist\Presets\Makefile.am
guash-data-install :
!ENDIF
!ENDIF
!ENDIF
!IFNDEF FROMPLUGINSDIR
# This part is used when building individual plug-ins or one of
# the libraries.
# If a plug-in has several object files, or needs extra libraries or
# compiler flags, these are in an EXTRA_xxx part.
!IF "$(DIR)"=="color-rotate"
STOCK_IMAGES = \
images/color-rotate-360.png \
images/color-rotate-a-b.png \
images/color-rotate-ccw.png \
images/color-rotate-cw.png \
STOCK_VARS = \
color_rotate_360 images/color-rotate-360.png \
color_rotate_a_b images/color-rotate-a-b.png \
color_rotate_ccw images/color-rotate-ccw.png \
color_rotate_cw images/color-rotate-cw.png \
images/color-rotate-stock-pixbufs.h: $(STOCK_IMAGES)
gdk-pixbuf-csource --rle --build-list $(STOCK_VARS) > images/color-rotate-stock-pixbufs.h
EXTRA_DEPS = images/color-rotate-stock-pixbufs.h
OBJECTS = \
color-rotate-callbacks.obj \
color-rotate-dialog.obj \
color-rotate-draw.obj \
color-rotate-stock.obj \
color-rotate-utils.obj \
color-rotate.obj \
!ENDIF
!IF "$(DIR)"=="fractal-explorer"
OBJECTS = \
fractal-explorer-dialogs.obj \
fractal-explorer.obj
!ENDIF
!IFDEF EXTRA_lighting
STOCK_VARS = \
stock_intensity_ambient_high images/stock-intensity-ambient-high.png \
stock_intensity_ambient_low images/stock-intensity-ambient-low.png \
stock_intensity_diffuse_high images/stock-intensity-diffuse-high.png \
stock_intensity_diffuse_low images/stock-intensity-diffuse-low.png \
stock_reflectivity_diffuse_high images/stock-reflectivity-diffuse-high.png \
stock_reflectivity_diffuse_low images/stock-reflectivity-diffuse-low.png \
stock_reflectivity_specular_high images/stock-reflectivity-specular-high.png \
stock_reflectivity_specular_low images/stock-reflectivity-specular-low.png \
stock_reflectivity_highlight_high images/stock-reflectivity-highlight-high.png \
stock_reflectivity_highlight_low images/stock-reflectivity-highlight-low.png
STOCK_IMAGES = \
images/stock-intensity-ambient-high.png \
images/stock-intensity-ambient-low.png \
images/stock-intensity-diffuse-high.png \
images/stock-intensity-diffuse-low.png \
images/stock-reflectivity-diffuse-high.png \
images/stock-reflectivity-diffuse-low.png \
images/stock-reflectivity-specular-high.png \
images/stock-reflectivity-specular-low.png \
images/stock-reflectivity-highlight-high.png \
images/stock-reflectivity-highlight-low.png
images/stock-pixbufs.h: $(STOCK_IMAGES)
gdk-pixbuf-csource --rle --build-list $(STOCK_VARS) > images/stock-pixbufs.h
EXTRA_DEPS = images/stock-pixbufs.h
OBJECTS = \
lighting-apply.obj \
lighting-image.obj \
lighting-main.obj \
lighting-preview.obj \
lighting-shade.obj \
lighting-stock.obj \
lighting-ui.obj
!ENDIF
!IF "$(DIR)"=="map-object"
OBJECTS = \
arcball.obj \
map-object-apply.obj \
map-object-image.obj \
map-object-main.obj \
map-object-preview.obj \
map-object-shade.obj \
map-object-ui.obj
OPTIMIZE =
!ENDIF
!IF "$(DIR)"=="file-bmp"
OBJECTS = \
bmp.obj \
bmp-read.obj \
bmp-write.obj
!ENDIF
!IFDEF EXTRA_plugindetails
OBJECTS = \
gimpprocbox.obj \
gimpprocbrowser.obj \
gimpprocview.obj \
plugin-browser.obj
!ENDIF
!IF "$(DIR)"=="file-faxg3"
OBJECTS = \
faxg3.obj \
g3.obj
!ENDIF
!IF "$(DIR)"=="file-fits"
OBJECTS = \
fits.obj \
fits-io.obj
!ENDIF
!IFDEF EXTRA_flame
OBJECTS = \
cmap.obj \
flame.obj \
libifs.obj \
rect.obj
!ENDIF
!IF "$(DIR)"=="file-fli"
OBJECTS = \
fli.obj \
fli-gimp.obj
!ENDIF
!IFDEF EXTRA_gfig
STOCK_VARS = \
stock_bezier images/stock-bezier.png \
stock_circle images/stock-circle.png \
stock_copy_object images/stock-copy-object.png \
stock_curve images/stock-curve.png \
stock_delete_object images/stock-delete-object.png \
stock_ellipse images/stock-ellipse.png \
stock_line images/stock-line.png \
stock_move_object images/stock-move-object.png \
stock_move_point images/stock-move-point.png \
stock_polygon images/stock-polygon.png \
stock_rectangle images/stock-rectangle.png \
stock_spiral images/stock-spiral.png \
stock_star images/stock-star.png \
stock_select_object images/stock-select-object.png \
stock_show_all images/stock-show-all.png
STOCK_IMAGES = \
images/stock-bezier.png \
images/stock-circle.png \
images/stock-copy-object.png \
images/stock-curve.png \
images/stock-delete-object.png \
images/stock-ellipse.png \
images/stock-line.png \
images/stock-move-object.png \
images/stock-move-point.png \
images/stock-polygon.png \
images/stock-spiral.png \
images/stock-star.png \
images/stock-logo.png
images/gfig-stock-pixbufs.h: $(STOCK_IMAGES)
gdk-pixbuf-csource --rle --build-list $(STOCK_VARS) > images/gfig-stock-pixbufs.h
EXTRA_DEPS = images/gfig-stock-pixbufs.h
OBJECTS = \
gfig.obj \
gfig-arc.obj \
gfig-bezier.obj \
gfig-circle.obj \
gfig-dialog.obj \
gfig-dobject.obj \
gfig-ellipse.obj \
gfig-grid.obj \
gfig-line.obj \
gfig-poly.obj \
gfig-preview.obj \
gfig-rectangle.obj \
gfig-spiral.obj \
gfig-star.obj \
gfig-style.obj \
gfig-stock.obj
!ENDIF
!IF "$(DIR)"=="ifs-compose"
OBJECTS = \
ifs-compose.obj \
ifs-compose-storage.obj \
ifs-compose-utils.obj
!ENDIF
!IFDEF EXTRA_imagemap
STOCK_VARS = \
stock_circle images/stock-circle.png \
stock_coord images/stock-coord.png \
stock_dimension images/stock-dimension.png \
stock_java images/stock-java.png \
stock_polygon images/stock-polygon.png \
stock_rectangle images/stock-rectangle.png \
stock_to_back images/stock-to-back.png \
stock_to_front images/stock-to-front.png \
STOCK_IMAGES = \
images/stock-circle.png \
images/stock-coord.png \
images/stock-dimension.png \
images/stock-java.png \
images/stock-polygon.png \
images/stock-rectangle.png \
images/stock-to-back.png \
images/stock-to-front.png \
images/imap-stock-pixbufs.h: $(STOCK_IMAGES)
gdk-pixbuf-csource --rle --build-list $(STOCK_VARS) > images/imap-stock-pixbufs.h
EXTRA_DEPS = images/imap-stock-pixbufs.h
OBJECTS = \
imap_cmd_copy_object.obj \
imap_about.obj \
imap_browse.obj \
imap_cern_lex.obj \
imap_cern_parse.obj \
imap_circle.obj \
imap_cmd_clear.obj \
imap_cmd_copy.obj \
imap_cmd_create.obj \
imap_cmd_cut.obj \
imap_cmd_cut_object.obj \
imap_cmd_delete.obj \
imap_cmd_delete_point.obj \
imap_cmd_edit_object.obj \
imap_cmd_gimp_guides.obj \
imap_cmd_guides.obj \
imap_cmd_insert_point.obj \
imap_cmd_move.obj \
imap_cmd_move_down.obj \
imap_cmd_move_sash.obj \
imap_cmd_move_selected.obj \
imap_cmd_move_to_front.obj \
imap_cmd_move_up.obj \
imap_cmd_object_down.obj \
imap_cmd_object_move.obj \
imap_cmd_object_up.obj \
imap_cmd_paste.obj \
imap_cmd_select.obj \
imap_cmd_select_all.obj \
imap_cmd_select_next.obj \
imap_cmd_select_prev.obj \
imap_cmd_select_region.obj \
imap_cmd_send_to_back.obj \
imap_cmd_unselect.obj \
imap_cmd_unselect_all.obj \
imap_command.obj \
imap_csim_lex.obj \
imap_csim_parse.obj \
imap_default_dialog.obj \
imap_edit_area_info.obj \
imap_file.obj \
imap_grid.obj \
imap_main.obj \
imap_menu.obj \
imap_menu_funcs.obj \
imap_misc.obj \
imap_mru.obj \
imap_ncsa_lex.obj \
imap_ncsa_parse.obj \
imap_object.obj \
imap_object_popup.obj \
imap_polygon.obj \
imap_preferences.obj \
imap_preview.obj \
imap_rectangle.obj \
imap_selection.obj \
imap_settings.obj \
imap_source.obj \
imap_statusbar.obj \
imap_stock.obj \
imap_string.obj \
imap_table.obj \
imap_taglist.obj
# not changing the source which is lexed
EXTRACFLAGS = -FIstring.h -FIstdlib.h -DYY_NO_UNISTD_H
!ENDIF
!IFDEF EXTRA_iwarp
OPTIMIZE =
!ENDIF
!IF "$(DIR)"=="file-ico"
EXTRACFLAGS = $(PNG_CFLAGS)
EXTRALIBS = $(PNG_LIBS)
OBJECTS = \
ico-dialog.obj \
ico-load.obj \
ico-save.obj \
ico.obj
!ENDIF
!IF "$(DIR)"=="file-jpeg"
EXTRACFLAGS = -I$(JPEG) \
!IFDEF EXIF
$(EXIF_CFLAGS) -DHAVE_EXIF -DHAVE_EXIF_0_6
!ENDIF
EXTRALIBS = \
$(JPEG)\libjpeg.lib \
!IFDEF EXIF
$(EXIF_LIBS)
!ENDIF
OBJECTS = \
jpeg.obj \
jpeg-exif.obj \
jpeg-icc.obj \
jpeg-load.obj \
jpeg-quality.obj \
jpeg-save.obj \
jpeg-settings.obj \
!IFDEF EXIF
gimpexif.obj
!ENDIF
!ENDIF
!IF "$(DIR)"=="file-uri"
OBJECTS = \
gimpmountoperation.obj \
# uri-backend-gnomevfs.obj \
uri-backend-gvfs.obj \
# uri-backend-libcurl.obj \
# uri-backend-wget.obj \
uri.obj
!ENDIF
!IF "$(DIR)"=="lcms"
EXTRACFLAGS = $(LCMS_CFLAGS)
EXTRALIBS = $(LCMS_LIBS)
!ENDIF
!IFDEF EXTRA_maze
OBJECTS = \
maze-algorithms.obj \
maze-dialog.obj \
maze-utils.obj \
maze.obj \
!ENDIF
!IFDEF EXTRA_mpeg
EXTRACFLAGS = -I$(MPEG)
EXTRALIBS = $(MPEG)\release\libmpeg.lib
!ENDIF
!IFDEF EXTRA_metadata
OBJECTS = \
base64.obj \
interface.obj \
metadata.obj \
xmp-encode.obj \
xmp-model.obj \
xmp-parse.obj \
xmp-schemas.obj
!ENDIF
!IFDEF EXTRA_pagecurl
STOCK_VARS = \
curl0 curl0.png \
curl1 curl1.png \
curl2 curl2.png \
curl3 curl3.png \
curl4 curl4.png \
curl5 curl5.png \
curl6 curl6.png \
curl7 curl7.png \
STOCK_IMAGES = \
curl0.png \
curl1.png \
curl2.png \
curl3.png \
curl4.png \
curl5.png \
curl6.png \
curl7.png \
pagecurl-icons.h: $(STOCK_IMAGES)
gdk-pixbuf-csource --rle --build-list $(STOCK_VARS) > pagecurl-icons.h
EXTRA_DEPS = pagecurl-icons.h
!ENDIF
!IF "$(DIR)"=="file-png"
EXTRACFLAGS = $(PNG_CFLAGS)
EXTRALIBS = $(PNG_LIBS)
!ENDIF
!IFDEF EXTRA_print
OBJECTS = \
print.obj \
print-draw-page.obj \
print-page-layout.obj \
print-preview.obj \
print-settings.obj \
print-page-setup.obj \
print-utils.obj \
EXTRALIBS = $(CAIRO_LIBS) $(GTHREAD_LIBS)
!ENDIF
!IF "$(DIR)"=="file-psp"
EXTRACFLAGS = $(ZLIB_CFLAGS)
EXTRALIBS = $(ZLIB_LIBS)
!ENDIF
!IF "$(DIR)"=="file-psd"
EXTRACFLAGS = $(TIFF_CFLAGS) $(JPEG_CFLAGS)
EXTRALIBS = $(TIFF_LIBS) $(JPEG)\libjpeg.lib $(ZLIB_LIBS) user32.lib
OBJECTS = \
psd-image-res-load.obj \
psd-layer-res-load.obj \
psd-load.obj \
#2nd! psd-save.obj \
psd-thumb-load.obj \
psd-util.obj \
psd.obj
!ENDIF
!IF "$(DIR)"=="screenshot"
EXTRALIBS = user32.lib
!ENDIF
!IF "$(DIR)"=="script-fu"
OBJECTS = \
scheme-wrapper.obj \
script-fu.obj \
script-fu-console.obj \
script-fu-scripts.obj \
script-fu-text-console.obj \
script-fu-interface.obj \
script-fu-server.obj \
script-fu-eval.obj \
script-fu-regex.obj \
script-fu-script.obj \
script-fu-utils.obj \
EXTRALIBS = tinyscheme\tinyscheme.lib ftx\ftx.lib kernel32.lib wsock32.lib
EXTRACFLAGS = -DREGEX_MALLOC -DUSE_INTERFACE -DSTANDALONE=0
#HAVE_RESOURCE = YES
!ENDIF
!IF "$(DIR)"=="selection-to-path"
OBJECTS = \
curve.obj \
edge.obj \
fit.obj \
math.obj \
pxl-outline.obj \
spline.obj \
selection-to-path-dialog.obj \
selection-to-path.obj \
spline.obj \
vector.obj \
!ENDIF
!IF "$(DIR)"=="file-sgi"
OBJECTS = \
sgi.obj \
sgi-lib.obj
!ENDIF
!IF "$(DIR)"=="file-svg"
EXTRACFLAGS = $(RSVG_CFLAGS)
EXTRALIBS = $(RSVG_LIBS)
!ENDIF
!IF "$(DIR)"=="file-tiff-load" || "$(DIR)"=="file-tiff-save"
EXTRACFLAGS = $(TIFF_CFLAGS)
EXTRALIBS = $(TIFF_LIBS) $(JPEG)\libjpeg.lib $(ZLIB_LIBS) user32.lib
!ENDIF
!IFDEF EXTRA_gimp_ace
EXTRACFLAGS = -DGLACE_GIMP
OBJECTS = \
gimp_ace.obj \
glace.obj \
glaceG.obj
!ENDIF
!IFDEF EXTRA_gimpressionist
EXTRALIBS = $(GTK2_LIBS)
OBJECTS = \
brush.obj \
color.obj \
general.obj \
gimp.obj \
gimpressionist.obj \
globals.obj \
orientation.obj \
orientmap.obj \
paper.obj \
placement.obj \
plasma.obj \
ppmtool.obj \
presets.obj \
preview.obj \
repaint.obj \
size.obj \
sizemap.obj \
utils.obj
!ENDIF
!IFDEF EXTRA_help
OBJECTS = \
gimphelp.obj \
gimphelpdomain.obj \
gimphelpitem.obj \
gimphelplocale.obj \
gimphelpprogress.obj \
help.obj \
TEST_OBJECTS = \
gimp-help-lookup.obj
!ENDIF
!IFDEF EXTRA_helpbrowser
OBJECTS = \
gimpthrobber.obj \
gimpthrobberaction.obj \
helpbrowser.obj \
dialog.obj \
queue.obj \
uri.obj
EXTRACFLAGS = $(GTKHTML2_CFLAGS)
EXTRALIBS = $(GTKHTML2_LIBS) user32.lib shell32.lib
dialog.c : logo-pixbuf.h
logo-pixbuf.h: wilber-reading.png
gdk-pixbuf-csource --raw --name=logo_data wilber-reading.png > logo-pixbuf.h
!ENDIF
!IFDEF EXTRA_guash
HAVE_RESOURCE = YES
!ENDIF
!IFDEF EXTRA_magiceye
OBJECTS = \
dialog.obj \
magiceye.obj
!ENDIF
!IFDEF EXTRA_user_filter
uf_lexer.c : uf_lexer.l
flex -Cem -ouf_lexer.c uf_lexer.l
uf_parser.tab.c: uf_parser.y
bison --defines --verbose uf_parser.y
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_pmosaic
EXTRACFLAGS = -I$(JPEG)
EXTRALIBS = $(JPEG)\libjpeg.lib
OBJECTS = \
pmosaic.obj \
pmsc.obj
!ENDIF
!IFDEF EXTRA_twain
OBJECTS = \
tw_func.obj \
tw_util.obj \
!IFDEF DEBUG
tw_dump.obj \
!ENDIF
tw_win.obj \
twain.obj
EXTRALIBS = user32.lib
!ENDIF
!IF "$(DIR)"=="web-browser"
EXTRALIBS = shell32.lib user32.lib
!ENDIF
!IFDEF EXTRA_winprint
EXTRALIBS = user32.lib gdi32.lib comdlg32.lib
!ENDIF
!IFDEF EXTRA_winclipboard
EXTRALIBS = user32.lib
!ENDIF
!IFDEF EXTRA_winicon
EXTRACFLAGS = $(PNG_CFLAGS)
EXTRALIBS = $(PNG_LIBS)
OBJECTS = \
icodialog.obj \
icoload.obj \
icosave.obj \
main.obj
!ENDIF
!IF "$(DIR)"=="win-snap"
OBJECTS = winsnap.obj
#HAVE_RESOURCE = YES
RESOURCE = winsnap.res
EXTRALIBS = user32.lib gdi32.lib
!ENDIF
!IF "$(DIR)"=="file-xjt"
OBJECTS = \
xjt.obj \
xjpeg.obj
EXTRACFLAGS = $(JPEG_CFLAGS)
EXTRALIBS = $(JPEG_LIBS)
!ENDIF
PLUGINDIR = $(GIMPTOP)\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 -GF $(OPTIMIZE) $(RTL) -W2 -Zm400
CFLAGS = -FImsvc_recommended_pragmas.h \
-DHAVE_CONFIG_H \
-DLOCALEDIR=\"?\" \
-I$(GIMPTOP) -I. -I$(PLUGINDIR) \
$(EXTRACFLAGS) \
$(GTK2_CFLAGS) $(INTL_CFLAGS)
LDFLAGS = /link /subsystem:console /machine:ix86 $(LINKDEBUG) /NODEFAULTLIB:LIBC
!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
# We have our own resource file (just an icon, usually)
RESOURCE = $(PLUGIN).res
!ELSE
# Use the Wilber icon otherwise. If gimp.exe eventually gets more resources,
# this will have to be changed.
RESOURCE = ..\..\app\gimp.res
!ENDIF
$(PLUGIN).exe : $(EXTRA_DEPS) $(OBJECTS) $(RESOURCE)
$(CC) $(CFLAGS) -Fe$(PLUGIN).exe $(OBJECTS) $(RESOURCE) \
..\..\libgimp\gimp-$(GIMP_VER).lib ..\..\libgimp\gimpui-$(GIMP_VER).lib \
..\..\libgimpbase\gimpbase-$(GIMP_VER).lib \
..\..\libgimpcolor\gimpcolor-$(GIMP_VER).lib \
..\..\libgimpconfig\gimpconfig-$(GIMP_VER).lib \
..\..\libgimpmath\gimpmath-$(GIMP_VER).lib \
..\..\libgimpwidgets\gimpwidgets-$(GIMP_VER).lib \
$(GLIB_LIBS) $(GTK2_LIBS) $(INTL_LIBS) $(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
!IFDEF MODULE
# This part is used when building a module
# Allow building libraries with specific extensions
!IFNDEF MODULE_EXT
MODULE_EXT = dll
!ELSE
EXTRA_EXPORT = /export:init$(MODULE)
!ENDIF
all : $(MODULE).$(MODULE_EXT)
install : all
!IFNDEF OBJECTS
OBJECTS = $(MODULE).obj
!ENDIF
$(MODULE).$(MODULE_EXT) : $(OBJECTS)
$(CC) $(CFLAGS) -LD -Fe$@ $(OBJECTS) $(LDFLAGS) $(EXTRALIBS) \
$(GIMPTOP)\libgimp\gimp-$(GIMP_VER).lib \
$(GIMPTOP)\libgimp\gimpui-$(GIMP_VER).lib \
$(GIMPTOP)\libgimpcolor\gimpcolor-$(GIMP_VER).lib \
$(GIMPTOP)\libgimpbase\gimpbase-$(GIMP_VER).lib \
$(GIMPTOP)\libgimpwidgets\gimpwidgets-$(GIMP_VER).lib \
$(GLIB_LIBS) $(GTK2_LIBS) $(INTL_LIBS) $(EXTRA_EXPORT)
!ENDIF
.c.obj :
$(CC) $(CFLAGS) -c $<
clean ::
erase *.obj
erase *.lib
erase *.exp
erase *.exe
erase *.pdb
erase *.ilk
!ENDIF