Commit f5351f2c authored by Tor Lillqvist's avatar Tor Lillqvist Committed by Tor Lillqvist

Update.

2003-05-31  Tor Lillqvist  <tml@iki.fi>

	* README.win32: Update.

	* plug-ins/makefile.cygwin
	* plug-ins/makefile.mingw.in: Remove. Unmaintained for a long time.
parent 35c781c3
2003-05-31 Tor Lillqvist <tml@iki.fi>
* README.win32: Update.
* plug-ins/makefile.cygwin
* plug-ins/makefile.mingw.in: Remove. Unmaintained for a long time.
* app/gimp.sym: Remove. No gimp library uses symbols from the
gimp executable any longer, says Mitch.
For more information about the port or GLib, GTk+ and the GIMP to
native Windows, and pre-built binary packages, see
http://www.gimp.org/win32/ or http://www.iki.fi/tml/gimp/win32/ .
For pre-built binary packages, see
http://www.gimp.org/win32/downloads.html .
To build the GIMP on Win32, you can use either gcc or Microsoft Visual
C++. The gcc to use should be for a mingw configuration (producing
executables that don't use the cygwin dll). For more information about
the preparation necessary for building with gcc, what version you want
and where to get it, etc, read README.win32 in GLib 1.3 (or
later). (GLib 1.3 is the developer version and thus isn't distributed
per se, but available from CVS, and especially for Windows in zipfiles
from the web pages mentioned above.)
Building GIMP on Win32
======================
Unfortunately the makefiles for MSVC aren't quite up-to-date. You will
have to modify them a bit if you want to use MSVC. But quite possibly
by the time you read this somebody might have contributes new
makefiles, or even project files.
There are two ways to build GIMP for Win32:
The GIMP wants to be built with the GNU "intl" library for
internationalisation (i18n). Get the version ported to Win32 from the
web site mentioned above. We build the "intl" library to a DLL called
gnu-intl.dll to reduce name clash risks. If you don't want any i18n
stuff, undefine ENABLE_NLS in the config.h.win32 file, and remove
references to the gnu-intl library from the makefiles.
1) Use the autoconf-generated configure script, and the resulting
Makefiles (which use libtool and gcc to do the compilation). I use
this myself, but it might be hell to setup correctly. Doesn't work
correctly in all directories, for instance in the po* directories it
is much easier to use the makefile.mingw files.
Note that while the GNU gettext package is under the GPL (GNU General
Public License), the "intl" library part as distributed with GNU libc
is under the LGPL (GNU Lesser General Public License, a.k.a. GNU
Library General Public License). We want the LGPL-licensed version of
the intl library, even if they are the same source code, more or
less. It doesn't matter for the GIMP which itself is licensed under
the GPL, but it does matter for GTk+, which is licensed under the
LGPL.
First, build in the libgimp directory, then in app, plug-ins, and
finally in modules. Check the makefile.mingw files in said
directories.
The current build setup for Windows is a mess, with complex
hand-maintained makefiles. I know. On the other hand, I don't think
using the Unix style configuration mechanism to generate mingw EXEs
and DLLs is quite feasible, either. I would love to be proved wrong.
2) Use the Microsoft compiler, cl and Make, nmake. Say nmake -f
makefile.msc in various directories. These makefiles are maintained by
Hans Breuer <hans@breuer.org>. They presumably will not generate the
same name DLLs and import libraries as the autoconfiscated libtool
build does, nor necesarily use the same named GLib, GTK etc import
libraries as those distributed from the web site mentioned above.
--Tor Lillqvist <tml@iki.fi>
# Makefile to build the GIMP plug-ins with cygwin's make and gcc -mno-cygwin
# 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.
# This is what I use as installation target, from where the installer-builder
# will pick it up.
DEST = /install/gimp
ifndef GIMPTOP
GIMPTOP = ..
endif
TOP = ../..
GIMP_VER = 1.2
include $(GIMPTOP)/build/win32/make.mingw
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. Use several lists just so that this makefile looks more like
# the one used with Microsoft's nmake, which has silly 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 csource cubism curve_bend
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 gpb 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 papertile pat pcx pix pixelize plasma plugindetails png pnm polar ps psd psp randomize ripple rotate
COMMON5 = sample_colorize scatter_hsv semiflatten sharpen shift smooth_palette snoise sobel sparkle spheredesigner spread sunras tga threshold_alpha tiff tile tileit tiler unsharp video vinvert vpropagate warp waves whirlpinch winclipboard wind winprint wmf xbm xwd zealouscrop
# These have own subdirectories each
SEPARATE = AlienMap AlienMap2 FractalExplorer Lighting MapObject bmp dbbrowser faxg3 fits flame fp gfig gflare gfli gimpressionist gdyntext ifscompose imagemap maze mosaic pagecurl rcm sel2path sgi sinus struc twain webbrowser winsnap
# 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 "make -f
# makefile.cygwin unofficial".
UNOFFICIAL = Anamorphose DigitalSignature RGB_Displace ccanalyze fixer gimp_ace guash homogenizer kaleidoscope logconv sel_gauss magiceye mathmap psd_save resynthesizer user_filter
# The main target
all : ../config.h libs-all common-plugins-all separate-plugins-all
../config.h : ../config.h.win32
cp ../config.h.win32 ../config.h
install : libs-install common-plugins-install separate-plugins-install data-install
unofficial:
for d in $(UNOFFICIAL); do $(MAKE) -f makefile.cygwin sub-one-separate DIR=$$d TARGET=install; done
clean:: libs-clean common-plugins-clean separate-plugins-clean
libs-all :
$(MAKE) -f makefile.cygwin sub-libs TARGET=all
libs-install :
$(MAKE) -f makefile.cygwin sub-libs TARGET=install
libs-clean :
$(MAKE) -f makefile.cygwin sub-libs TARGET=clean
sub-libs:
cd libgck/gck; $(MAKE) -f ../../makefile.cygwin GIMPTOP=../../.. TOP=../../$(TOP) LIBRARY=gck OBJECTS="gckcolor.o" $(TARGET)
common-plugins-all :
$(MAKE) -f makefile.cygwin sub-common-plugins TARGET=all
common-plugins-install :
$(MAKE) -f makefile.cygwin sub-common-plugins TARGET=install
common-plugins-clean :
cd common; $(MAKE) -f ../makefile.cygwin GIMPTOP=../.. LIBRARY=PLUGIN=dummy clean
sub-common-plugins :
for d in $(COMMON1) $(COMMON2) $(COMMON3) $(COMMON4) $(COMMON5); do $(MAKE) -f makefile.cygwin sub-one-common DIR=$$d TARGET=$(TARGET); done
sub-one-common :
cd common; $(MAKE) -f ../makefile.cygwin GIMPTOP=../.. TOP=../$(TOP) PLUGIN=$(DIR) EXTRA_$(DIR)=1 $(TARGET)
separate-plugins-all :
$(MAKE) -f makefile.cygwin sub-separate-plugins TARGET=all
separate-plugins-install :
$(MAKE) -f makefile.cygwin sub-separate-plugins TARGET=install
separate-plugins-clean :
$(MAKE) -f makefile.cygwin sub-separate-plugins TARGET=clean
sub-separate-plugins : sub-script-fu sub-gap
for d in $(SEPARATE); do $(MAKE) -f makefile.cygwin sub-one-separate DIR=$$d TARGET=$(TARGET); done
# We must handle script-fu separately because of the dash, sigh
sub-script-fu :
cd script-fu; $(MAKE) -f ../makefile.cygwin GIMPTOP=../.. TOP=../$(TOP) PLUGIN=script-fu EXTRA_script_fu=1 $(TARGET)
# Also GAP is special
sub-gap :
cd gap; $(MAKE) -f ../makefile.cygwin GIMPTOP=../.. TOP=../$(TOP) PLUGIN=gap_filter EXTRA_gap_filter=1 $(TARGET)
cd gap; $(MAKE) -f ../makefile.cygwin GIMPTOP=../.. TOP=../$(TOP) PLUGIN=gap_plugins EXTRA_gap_plugins=1 $(TARGET)
sub-one-separate :
cd $(DIR); $(MAKE) -f ../makefile.cygwin GIMPTOP=../.. TOP=../$(TOP) PLUGIN=$(DIR) EXTRA_$(DIR)=1 $(TARGET)
data-install : gap-data-install gflare-data-install gimpressionist-data-install guash-data-install script-fu-data-install
gap-data-install:
-mkdir $(DEST)/scripts
$(INSTALL) gap/*.scm $(DEST)/scripts
gflare-data-install:
-mkdir $(DEST)/gflare
-$(INSTALL) gflare/gflares/* $(DEST)/gflare
-rm $(DEST)/gflare/Makefile.am
gimpressionist-data-install :
-mkdir $(DEST)/gimpressionist $(DEST)/gimpressionist/Brushes $(DEST)/gimpressionist/Paper $(DEST)/gimpressionist/Presets
$(INSTALL) gimpressionist/Brushes/*.p?m $(DEST)/gimpressionist/Brushes
$(INSTALL) gimpressionist/Paper/*.p?m $(DEST)/gimpressionist/Paper
-$(INSTALL) gimpressionist/Presets/* $(DEST)/gimpressionist/Presets
-rm $(DEST)/gimpressionist/Presets/Makefile.am
guash-data-install:
script-fu-data-install:
-mkdir $(DEST)/scripts
$(INSTALL) script-fu/scripts/*.scm $(DEST)/scripts
rm $(DEST)/scripts/test-sphere.scm
$(INSTALL) script-fu/scripts/*.jpg $(DEST)/scripts
for d in FractalExplorer/fractalexplorer-examples/*; do if [ -f $$d ]; then $(INSTALL) $$d $(DEST)/fractalexplorer; fi; done
rm $(DEST)/fractalexplorer/Makefile.am
endif # ifndef MODULE
endif # ifndef PLUGIN
endif # ifndef LIBRARY
ifndef FROMPLUGINSDIR
# This part is used when building individual plug-ins or one of
# the libraries.
ifdef EXTRA_FractalExplorer
OBJECTS = \
Dialogs.o \
Events.o \
FractalExplorer.o \
Globals.o
endif
ifdef EXTRA_Lighting
OBJECTS = \
lighting_apply.o \
lighting_image.o \
lighting_main.o \
lighting_preview.o \
lighting_shade.o \
lighting_ui.o
endif
ifdef EXTRA_MapObject
OBJECTS = \
arcball.o \
mapobject_apply.o \
mapobject_image.o \
mapobject_main.o \
mapobject_preview.o \
mapobject_shade.o \
mapobject_ui.o
endif
ifdef EXTRA_bmp
OBJECTS = \
bmp.o \
bmpread.o \
bmpwrite.o
endif
ifdef EXTRA_dbbrowser
OBJECTS = \
dbbrowser.o \
dbbrowser_utils.o
endif
ifdef EXTRA_faxg3
OBJECTS = \
faxg3.o \
g3.o \
run_tbl.o
endif
ifdef EXTRA_fits
OBJECTS = \
fits.o \
fitsrw.o
endif
ifdef EXTRA_fixer
CXX = c++ -mno-cygwin -mpentium -fnative-struct
OBJECTS = \
fixer.o
EXTRALIBS = -lstdc++
.cc.o:
$(CXX) $(CFLAGS) -c $< -o $@
endif
ifdef EXTRA_flame
OBJECTS = \
cmap.o \
flame.o \
libifs.o \
rect.o
endif
ifdef EXTRA_fp
OBJECTS = \
fp.o \
fp_gdk.o \
fp_gtk.o \
fp_misc.o
endif
ifdef EXTRA_gap_filter
OBJECTS = \
gap_filter_main.o \
gap_dbbrowser_utils.o \
gap_filter_foreach.o \
gap_filter_iterators.o \
gap_filter_pdb.o \
gap_filter_codegen.o \
gap_arr_dialog.o \
gap_pdb_calls.o
endif
ifdef EXTRA_gap_plugins
OBJECTS = \
gap_main.o \
gap_mov_exec.o \
gap_range_ops.o \
gap_arr_dialog.o \
gap_mov_dialog.o \
gap_layer_copy.o \
gap_split.o \
gap_resi_dialog.o \
gap_mpege.o \
gap_mod_layer.o \
gap_filter_pdb.o \
gap_filter_codegen.o \
gap_dbbrowser_utils.o \
gap_match.o \
gap_lib.o \
gap_exchange_image.o \
gap_pdb_calls.o \
resize.o
endif
ifdef EXTRA_gdyntext
OBJECTS = \
charmap.o \
charmap_window.o \
font_selection.o \
gdyntext.o \
gdyntextcompat.o \
gdyntext_ui.o \
message_window.o
endif
ifdef EXTRA_gflare
OBJECTS = \
asupsample.o \
gflare.o \
gtkmultioptionmenu.o
endif
ifdef EXTRA_gfli
OBJECTS = \
fli.o \
gfli.o
endif
ifdef EXTRA_helpbrowser
OBJECTS = \
helpbrowser.o \
queue.o
endif
ifdef EXTRA_homogenizer
CXX = c++ -mno-cygwin -mpentium -fnative-struct
OBJECTS = \
homogenize.o
EXTRALIBS = -lstdc++
.cc.o:
$(CXX) $(CFLAGS) -c $< -o $@
endif
ifdef EXTRA_ifscompose
OBJECTS = \
ifscompose.o \
ifscompose_storage.o \
ifscompose_utils.o
endif
ifdef EXTRA_imagemap
OBJECTS = \
imap_cmd_copy_object.o \
imap_about.o \
imap_browse.o \
imap_cern_lex.o \
imap_cern_parse.o \
imap_circle.o \
imap_cmd_clear.o \
imap_cmd_copy.o \
imap_cmd_create.o \
imap_cmd_cut.o \
imap_cmd_cut_object.o \
imap_cmd_delete.o \
imap_cmd_delete_point.o \
imap_cmd_edit_object.o \
imap_cmd_guides.o \
imap_cmd_insert_point.o \
imap_cmd_move.o \
imap_cmd_move_down.o \
imap_cmd_move_sash.o \
imap_cmd_move_selected.o \
imap_cmd_move_to_front.o \
imap_cmd_move_up.o \
imap_cmd_object_down.o \
imap_cmd_object_move.o \
imap_cmd_object_up.o \
imap_cmd_paste.o \
imap_cmd_select.o \
imap_cmd_select_all.o \
imap_cmd_select_next.o \
imap_cmd_select_prev.o \
imap_cmd_select_region.o \
imap_cmd_send_to_back.o \
imap_cmd_unselect.o \
imap_cmd_unselect_all.o \
imap_command.o \
imap_csim_lex.o \
imap_csim_parse.o \
imap_default_dialog.o \
imap_edit_area_info.o \
imap_file.o \
imap_grid.o \
imap_main.o \
imap_menu.o \
imap_menu_funcs.o \
imap_misc.o \
imap_mru.o \
imap_ncsa_lex.o \
imap_ncsa_parse.o \
imap_object.o \
imap_object_popup.o \
imap_polygon.o \
imap_popup.o \
imap_preferences.o \
imap_preview.o \
imap_rectangle.o \
imap_selection.o \
imap_settings.o \
imap_source.o \
imap_statusbar.o \
imap_string.o \
imap_table.o \
imap_toolbar.o \
imap_tools.o
endif
ifdef EXTRA_jpeg
EXTRACFLAGS = $(JPEG_CFLAGS)
EXTRALIBS = $(JPEG_LIBS)
endif
ifdef EXTRA_maze
OBJECTS = \
algorithms.o \
handy.o \
maze.o \
maze_face.o
endif
ifdef EXTRA_mpeg
EXTRACFLAGS = -I$(MPEG)
EXTRALIBS = -L $(MPEG)/release -lmpeg
endif
ifdef EXTRA_png
EXTRACFLAGS = $(PNG_CFLAGS)
EXTRALIBS = $(PNG_LIBS)
endif
ifdef EXTRA_print
OBJECTS = \
print.o \
print-escp2.o \
print-pcl.o \
print-ps.o \
print-util.o
endif
ifdef EXTRA_psp
EXTRACFLAGS = $(ZLIB_CFLAGS)
EXTRALIBS = $(ZLIB_LIBS)
endif
ifdef EXTRA_rcm
OBJECTS = \
rcm.o \
rcm_callback.o \
rcm_dialog.o \
rcm_gdk.o \
rcm_misc.o
OPTIMIZE =
endif
ifdef EXTRA_resynthesizer
CXX = c++ -mno-cygwin -mpentium -fnative-struct
OBJECTS = \
resynth.o
EXTRALIBS = -lstdc++
.cc.o:
$(CXX) $(CFLAGS) -c $< -o $@
endif
ifdef EXTRA_script_fu
OBJECTS = \
interp_md5.o \
interp_regex.o \
interp_slib.o \
interp_sliba.o \
interp_trace.o \
script-fu.o \
script-fu-console.o \
script-fu-constants.o \
script-fu-scripts.o \
regex.o \
dbbrowser_utils.o
EXTRACFLAGS = -DREGEX_MALLOC -I../dbbrowser
HAVE_RESOURCE = YES
dbbrowser_utils.c : ../dbbrowser/dbbrowser_utils.c
cp $< $@
endif
ifdef EXTRA_sel2path
OBJECTS = \
curve.o \
edge.o \
fit.o \
math.o \
pxl-outline.o \
sel2path.o \
sel2path_adv_dialog.o \
spline.o \
vector.o
endif
ifdef EXTRA_sgi
OBJECTS = \
sgi.o \
sgilib.o
endif
ifdef EXTRA_tiff
EXTRACFLAGS = $(TIFF_CFLAGS)
EXTRALIBS = $(TIFF_LIBS)
endif
ifdef EXTRA_gimp_ace
EXTRACFLAGS = -DGLACE_GIMP -DPLUGIN_NAME=\"gimp_ace\" -DDATA
OBJECTS = \
src/dialog.o \
src/gimp_ace.o \
src/glace.o \
src/glaceG.o \
src/preview.o
endif
ifdef EXTRA_gimpressionist
OBJECTS = \
about.o \
brush.o \
color.o \
general.o \
gimp.o \
gimpressionist.o \
orientation.o \
orientmap.o \
paper.o \
placement.o \
plasma.o \
ppmtool.o \
presets.o \
preview.o \
repaint.o \
size.o \
sizemap.o
endif
ifdef EXTRA_guash
HAVE_RESOURCE = YES
endif
ifdef EXTRA_magiceye
OBJECTS = \
dialog.o \
magiceye.o
endif
ifdef EXTRA_mathmap
OBJECTS = \
builtins.o \
builtins_compiler.o \
cgen.o \
colorwell.o \
exprtree.o \
internals.o \
jump.o \
lispreader.o \
macros.o \
mathmap.o \
noise.o \
overload.o \
parser.o \
postfix.o \
scanner.o \
tags.o \
tuples.o \
userval.o \
vars.o
EXTRACFLAGS = -Drandom=g_random_int
parser.c parser.h : parser.y
bison -p mm -d parser.y
mv parser.tab.c parser.c
mv parser.tab.h parser.h
scanner.c : scanner.fl parser.h
flex -Pmm scanner.fl
mv lex.mm.c scanner.c
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.o \
uf_eval.o \
uf_file.o \
uf_gui.o \
uf_lexer.o \
uf_main.o \