mirror of
https://gitlab.gnome.org/GNOME/gimp
synced 2024-10-21 03:52:33 +00:00
0aeb637088
* README.win32: Update gcc instructions. Remove warning about gettext being GPL, as the GIMP is GPL, too, of course, and it thus doesn't matter. * user_install.bat: Rename the template user gtkrc to gtkrc_user, to reduce user confusion. * app/main.c: Small change for gcc on Win32 compilation. * */makefile.cygwin * app/module_db.c: With newest gcc-2.95 -fnative-struct on Win32, no need to have differently named DLLs (including modules) for (built by) gcc and MSVC. * app/module_db.c: Use g_strdup_printf() instead of strlen(), g_malloc() and g_snprintf() * libgimp/Makefile.am: No need to distribute gimpfeatures.h.win32, the suitable gimpfeatures.h is built when making the dist. * libgimp/gimpfeatures.h.win32: Removed. * libgimp/makefile.cygwin * libgimp/makefile.msc: Remove gimpfeatures.h.win32. * libgimp/gimp.h: Win32 startup code changed a bit. * plug-ins/makefile.cygwin * plug-ins/makefile.msc: Add the winsnap unofficial plug-in. * plug-ins/common/animationplay.c * plug-ins/common/gz.c: (Win32) Hack aroung WinMain getting clashing declarations because these guys include gdkx.h (which includes windows.h), and gimp.h also declares WinMain on its own.
482 lines
11 KiB
Plaintext
482 lines
11 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 bumpmap c_astretch checkerboard colorify compose convmatrix csource 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 gz header hot hrz illusion iwarp 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 sunras tga threshold_alpha tiff tile tileit tiler video vinvert vpropagate waves whirlpinch wind wmf xbm xwd zealouscrop
|
|
|
|
# These have own subdirectories each
|
|
SEPARATE = AlienMap FractalExplorer Lighting MapObject bmp borderaverage dbbrowser faxg3 fits flame fp gfig gfli ifscompose maze mosaic pagecurl print rcm sel2path 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, go there, and do "nmake -f
|
|
# makefile.msc unofficial".
|
|
|
|
UNOFFICIAL = Anamorphose RGB_Displace ccanalyze curve_bend fuse gimp_ace gimpressionist guash user_filter twain winsnap
|
|
|
|
# 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.
|
|
|
|
# If a plug-in has several object files, or needs extra libraries or
|
|
# compiler flags, these are in an EXTRA_xxx part.
|
|
|
|
!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
|
|
OPTIMIZE =
|
|
!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_storage.obj \
|
|
ifscompose_utils.obj
|
|
!ENDIF
|
|
|
|
!IFDEF EXTRA_iwarp
|
|
OPTIMIZE =
|
|
!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 \
|
|
..\dbbrowser\dbbrowser_utils.obj
|
|
EXTRACFLAGS = -DREGEX_MALLOC
|
|
HAVE_RESOURCE = YES
|
|
!ENDIF
|
|
|
|
!IFDEF EXTRA_sel2path
|
|
OBJECTS = \
|
|
curve.obj \
|
|
edge.obj \
|
|
fit.obj \
|
|
math.obj \
|
|
pxl-outline.obj \
|
|
sel2path.obj \
|
|
sel2path_adv_dialog.obj \
|
|
spline.obj \
|
|
vector.obj
|
|
!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 \
|
|
dialog_i.obj \
|
|
unsharp.obj
|
|
!ENDIF
|
|
|
|
!IFDEF EXTRA_gimp_ace
|
|
EXTRACFLAGS = -DGLACE_GIMP
|
|
OBJECTS = \
|
|
gimp_ace.obj \
|
|
glace.obj \
|
|
glaceG.obj
|
|
!ENDIF
|
|
|
|
!IFDEF EXTRA_gimpressionist
|
|
|
|
OBJECTS = \
|
|
gimpressionist.obj \
|
|
ppmtool.obj \
|
|
paper.obj \
|
|
brush.obj \
|
|
orientation.obj \
|
|
preview.obj \
|
|
repaint.obj \
|
|
general.obj \
|
|
gimp.obj \
|
|
plasma.obj \
|
|
presets.obj \
|
|
about.obj \
|
|
placement.obj \
|
|
orientmap.obj
|
|
!ENDIF
|
|
|
|
!IFDEF EXTRA_guash
|
|
HAVE_RESOURCE = YES
|
|
!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_twain
|
|
OBJECTS = \
|
|
tw_func.obj \
|
|
tw_util.obj \
|
|
twain.obj
|
|
EXTRALIBS = user32.lib
|
|
!ENDIF
|
|
|
|
!IFDEF EXTRA_winsnap
|
|
HAVE_RESOURCE = YES
|
|
EXTRALIBS = user32.lib gdi32.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
|
|
# 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 : $(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
|