2005-07-31 Manish Singh <yosh@gimp.org>
* acinclude.m4
* m4macros/Makefile.am
* m4macros/detectcflags.m4: new macro: GIMP_DETECT_CFLAGS; used
to detect which of a set of compiler options a compiler supports.
* configure.in: use the above for the altivec and -fno-strict-aliasing
flags. Also, use it to detect the presence of -mmmx and -msse, since
those are needed to compile even MMX/SSE assembly with gcc 4.0. Define
MMX/SSE_EXTRA_CFLAGS.
* app/composite/Makefile.am: compile each of the composite flavors
into their own library, so we can use automake's per-target CFLAGS.
Use MMX/SSE/ALTIVEC_EXTRA_CFLAGS in the appropriate places. Build
libappcomposite.a out of the resulting objects.
* app/composite/gimp-composite-3dnow.c
* app/composite/gimp-composite-altivec.c
* app/composite/gimp-composite-mmx.c
* app/composite/gimp-composite-sse.c
* app/composite/gimp-composite-sse2.c
* app/composite/gimp-composite-vis.c
* app/composite/make-installer.py: move the _init functions into
the installers, so only actually mmx/sse/etc. code gets compiled
under the appropriate CFLAGS.
* app/composite/gimp-composite-3dnow-installer.c
* app/composite/gimp-composite-altivec-installer.c
* app/composite/gimp-composite-mmx-installer.c
* app/composite/gimp-composite-sse-installer.c
* app/composite/gimp-composite-sse2-installer.c
* app/composite/gimp-composite-vis-installer.c: regenerated.
* app/composite/gimp-composite.c: remove useless cpu-accel.h include.
2003-03-06 Manish Singh <yosh@gimp.org>
* configure.in: revised tests for AltiVec. Define ALTIVEC_EXTRA_CFLAGS
for the extra compiler options needed. Also, support runtime checking
for AltiVec through the sysctl on Mac OS X, instead of SIGILL assembly
instruction checking, which needs GNU as.
* app/base/cpu_accel.c: use the sysctl if available.
* app/composite/Makefile.am: use ALTIVEC_EXTRA_CFLAGS.
* app/composite/gimp-composite-altivec.c: conditionally #include
altivec.h
* app/composite/Makefile.am (regenerate): Updated make-installer.py
command line to take advantage of the new compile time method of
determining which instruction set to compile.
2004-01-21 Manish Singh <yosh@gimp.org>
* configure.in: modernized, made a lot of things m4 macros, and made
versioning a lot more finegrained, in anticipation for post-2.0.
* autogen.sh: bumped up libtool and glib minimum requirements to match
reality.
* gimp-2.0.pc.in
* gimpthumb-2.0.pc.in
* gimpui-2.0.pc.in: adapted to new versioning variables, and bring
in RT_LIBS when needed.
* */*/Makefile.am: adapted to new versioning variables.
2004-01-13 Michael Natterer <mitch@gimp.org>
* app/composite/Makefile.am (AM_CPPFLAGS): G_LOG_DOMAIN should be
"Gimp-Composite", not "Gimp-Composition".
* app/app_procs.c (app_run): register a log handler for the
"Gimp-Composite" domain.
2003-12-12 Manish Singh <yosh@gimp.org>
* Makefile.am
* app/composite/Makefile.am
* themes/Default/images/Makefile.am: comestics.
* app/gui/color-notebook.c (color_notebook_new): no need to cast to G_OBJECT for g_signal_connect.
* plug-ins/common/mkgen.pl
* plug-ins/common/plugin-defs.pl: properly handle the libgimpoldpreview
stuff.
* plug-ins/common/Makefile.am: regenerated.
* plug-ins/common/decompose.c: cbrt() is in C99, so check for that
in addition to GNU libc.
2003-12-12 Hans Breuer <hans@breuer.org>
[
I've postponed my reservations against pangoft2/fontconfig/freetype2
usage, so The Gimp should now build with msvc without patching it.
]
* app/makefile.msc app/text/makefile.msc : use $(PANGOFT2_CFLAGS) etc.
* libgimpthumb/makefile.msc : (new file)
* makefile.msc : added libgimpthumb
* libgimpthumb/gimpthumbnail.c : include gimpwin32-io.h
* libgimpthumb/gimpthumb-utils.c : don't compare size pointer
with GIMP_THUMB_SIZE_FAIL but *size
* plug-ins/makefile.msc : handle libgimpoldpreview
* plug-ins/common/decompose.c : define cbrt() if not __GLIBC__
* plug-ins/common/winclipboard.c : make it compile without gimpcompat.h
* plug-ins/imagemap/imagemap_csim_lex.c : its a generated file
but still win32/msvc has no unistd.h
* plug-ins/pygimp/makefile.msc : (new file) to use the binary you
need to patch glib, see bug #98737
* plug-ins/libgimpoldpreview.c : use <libgimp/gimp.h> instead of "gimp.h"
* **/Makefile.am : added makefile.msc to EXTRA_DIST
* app/composite/make-install.py: migrated to new (trimmer) code and
removed dead code. Some beautification for generated code.
* app/composite/gimp-composite-{mmx,sse,sse2,3dnow,altivec,vis,generic}.{c,h}:
All init() functions are also a run-time check and now expected to
return TRUE/FALSE if the particular set of compositing functions can
be used.
* app/composite/gimp-composite.c: No longer has to determine if
the particular set of compositing functions can be used.
* app/composite/gimp-composite-{mmx,sse,sse2,3dnow,altivec,vis}-{install,test}.c:
Regenerated
* app/composite/test-composite.c: Deprecated, removed. All tests are automatically
generated and the code is in app/composite/gimp-composite-{mmx,sse,sse2,3dnow,altivec,vis}-test.c:
* app/composite/Makefile.am: removed unused references to test-composite.c
* app/composite/gimp-composite-regression.[ch]: New function to
initialise a GimpCompositeContext
* Makefile.am: do not generate the test form of
gimp-composite-generic.c
* app/composite/gimp-composite-generic-test.c: unused, removed.
* app/composite/make-installer.py app/composite/*-test.c: New
tests were broken because the byte-for-byte checks checked the
same buffer against itself.
* app/composite/gimp-composite-dispatch.[ch]: retired and removed.
* app/composite/Makefile.am: The 'test' target now builds and runs
all the tests in TESTS
Fixed typos of mismatched parenthesis in 'regenerate' target
* app/composite/Makefile.am: TESTS now include ss2 and 3dnow
instruction sets.
* app/composite/make-gimp-composite-dispatch.py: retired and removed.
* app/composite/gimp-composite.c: call the installers of all the
various instruction sets supplied by x86 type processors.
* app/base/base.c (base_init): Call gimp_composite_init() *before*
paint_funcs_setup() (preparation for retiring
app/paint-funcs/paint-funcs.c)
* app/composite/gimp-composite-sse2.[ch]
* app/composite/gimp-composite-3dnow.[ch]
* app/composite/gimp-composite-sse2-installer.c
* app/composite/gimp-composite-3dnow-installer.c:
Added
* app/composite/make-installer.py: generate regression test
programmes that take the command line arguments --iterations and
--n-pixels for the number of iterations of a set of tests, and the
number of pixels to use in each test, respectively.
Conditionally compile tests in order to build and run tests on
machines that can actually perform the tests.
Failing a regression test now causes remaining tests to be
skipped and a non-zero exit code by the programme.
* app/composite/make-installer.py: generate smaller tables and
less code. Now takes real command line options:
options:
--version show program's version number and exit
-h, --help show this help message and exit
-f FILE, --file=FILE the input object file
-t, --test generate regression testing code
-r REQUIRES, --requires=REQUIRES cpp #if conditionals
See Makefile.am for how I use these options to generate the code.
* app/composite/gimp-composite-altivec-{installer,test}.c:
* app/composite/gimp-composite-generic-{installer,test}.c:
* app/composite/gimp-composite-mmx-{installer,test}.c
* app/composite/gimp-composite-sse-{installer,test}.c:
* app/composite/gimp-composite-vis-{installer,test}.c: regenerated
with smaller tables and less ode.
* composite/ modularisation of the automatic compositing function
"wiring" to construct the table of compositing functions at
run-time instead of compile time.
The environment variable GIMP_COMPOSITE is a hexadecimal number
representing a bit-field used to set/reset options in the
gimp-composite code.
* gimp-composite-altivec.[ch]: added
* gimp-composite-altivec-installer.[ch]: added
* gimp-composite-vis.[ch]: added
* gimp-composite-vis-installer.[ch]: added
* gimp-composite-mmx-installer.[ch]: added
* gimp-composite-sse-installer.[ch]: added
* gimp-composite-altivec-test.[ch]: added
* gimp-composite-vis-test.[ch]: added
* gimp-composite-mmx-test.[ch]: added
* gimp-composite-sse-test.[ch]: added
* make-installer.py: Added meta programme for generating code to
1) construct a table of compositing functions indexed by
operation, and the pixel formats of the sources and destination,
and 2) generating code for regression testing of these compositing
functions against the same functions in gimp-composite-generic.c
* gimp-composite-mmx.c (xxxgimp_composite_overlay_rgba8_rgba8_rgba8_mmx):
removing from the current set of optimisations because it appears
to be broken.
* Makefile.am: modified regression testing targets to now build
gimp-composite-*-test where * is any of generic, mmx, sse,
altivec, and vis.
* gimp-composite.c: moved in initialisation code
gimp_composite_init() from gimp-composite-dispatch.c
* gimp-composite.c: removed gimp_composite_unsupported().
* gimp-composite.c: use cpu_accel() to determine at run-time which
set of optimisations are to be used.
* gimp-composite.c: conditionally compile code for ARCH_X86.
* make-gimp-composite-dispatch.c: retired. See make-installer.py
* gimp-composite-mmx.c (op_overlay): namespace cleanup, op_overlay()
and all of the constant values are now static
* gimp-composite-mmx.c, gimp-composite-sse.c: fixed bug with the
alpha mask being the address of the alpha mask, not the mask
itself.
* app/paint-funcs/paint-funcs.c: Check gimp_composite_options.use
to see if we should use the new code or the old code.
* app/composite/Makefile.am:
Made the explicit target "regenerate" to regenerate the source
files using the Python meta-generator.
* app/composite/gimp-composite-mmx.c
* app/composite/gimp-composite-mmx.h
* app/composite/gimp-composite-sse.c
* app/composite/gimp-composite-sse.h:
Now bounded by the conditional "#if __GNUC__ >= 3". This is a
coarse fix to enable app/composite to build on a wider variety of
platforms. Ideally, this will be refined to encompass different
versions of the compiler(s) supporting inline assembly code.
2003-07-24 Sven Neumann <sven@gimp.org>
* app/composite/Makefile.am: fixed build rules. There must not be
a dependency that causes gimp-composite-dispatch.[ch] to be
regenerated since we don't want to depend on Python for our build.
* app/core/gimpdrawable-blend.c (gradient_fill_region)
(gradient_put_pixel): fixed a problem with the new gradient
dithering on grayscale drawables (bug #118141).
* app/composite/gimp-composite-dispatch.[ch]: regenerated new code
taking advantage of simplified function prototypes.
* app/composite/gimp-composite-test.c: New regression testing
driver. This file is automatically generated, but it's included
in the cvs tree for expediency.
* app/composite/ns.py: hopeful checks for which OS is currently
running as a hint to what nm(1) is available.
* app/composite/gimp-composite-mmx.[ch]
* app/composite/gimp-composite-sse.[ch]
* app/composite/gimp-composite-generic.[ch]: function prototype
cleanup.
* app/composite/make-gimp-composite-dispatch.py: generates code to
test compositing functions.
* app/composite/gimp-composite-regression.[ch]: support for
automatically testing compositing functions.
* app/composite/make-gimp-composite-dispatch.py: big code cleanup.
* app/composite/Makefile.am: removed references to $(builddir)
* app/composite/test-composite.c: cleanup, preparation for transition to
automatically generated regression testing code.
* app/composite/gimp-composite.c: Clean up of typedef usage
* app/composite/gimp-composite-regression.[ch]: added foundation
for regression testing.
* app/composite/gimp-composite.[ch],
* app/composite/make-gimp-composite-dispatch.py
stubbed out the 32bit-per-channel pixel formats.
* app/composite/gimp-composite-sse.[ch],
* app/composite/Makefile.am
Broke-out and added the SSE versions of the MMX code.
* app/composite/gimp-composite.[ch],
* app/paint-funcs/paint-funcs.c,
* app/composite/make-gimp-composite-dispatch.py
Use of the new gimp_composite code is now turned on via the
environment variable GIMP_COMPOSITE with a non-zero value. For
example:
% GIMP_COMPOSITE=1 gimp-1.3
GimpCompositeFunction as the type for all compositing functions.
app/composite/Makefile.am: gimp-composite.c is no longer
dependant upon gimp-composite-dispatch.c
app/composite/gimp-composite-dispatch.[ch]
app/composite/make-gimp-composite-dispatch.py: Fixed type
mismatches.
app/composite/test-composite.c: Fixed bit-rot in not keeping up
with the changes in the surrounding .h files.
app/composite/gimp-composite-mmx.c: Incipient cleanup in marking
some asm constructs as volatile.
2003-07-14 Sven Neumann <sven@gimp.org>
* configure.in: use AM_PROG_AS instead of defining CCAS and
CCASFLAGS manually. Changed the assembler checks to use inline
assembly as we do in app/composite/gimp-composite-mmx.c.
* app/composite/Makefile.am: build the MMX code again; we need it
to be tested. If you have any problems, please report them. You can
quick-fix your build using the --disable-mmx configure option.
* app/paint-funcs/Makefile.am: reverted Helvetix' change ...
* app/paint-funcs/paint-funcs.c: ... and include
"composite/gimp-composite.h" instead of "gimp-composite.h".
app/paint-funcs/paint-funcs.c stubbed out code for using
gimp_composite. To enable the use of gimp_composite, set the
value of gimp_composite_use_old to 0 (zero).
app/base/base.c calls gimp_composite_init() hook to initialse
all the gimp_composite "stuff."
app/composite/make-gimp-composite-dispatch.py now generates
gimp-composite-dispatch.h
app/composite/gimp-composite-dispatch.[ch] are in CVS although
they are generated files. This is preparation for building the
table at run-time, instead of compile time.
app/composite/gimp-composite.c doesn't #include the main
dispatch table. This is preparation for building the table at
run-time, instead of compile time.
app/composite/Makefile.am doesn't compile gimp-composite-mmx.c
(until the various remaining gcc problems and configuration issues
are worked out).
2003-07-09 Sven Neumann <sven@gimp.org>
* app/composite/tester.c: removed ...
* app/composite/test-composite.c: ... and readded under a new name.
* app/composite/Makefile.am: added a check target that builds and
runs the test program.
* app/composite/gimp-composite-generic.c
* app/composite/gimp-composite-mmx.c
* app/composite/gimp-composite-util.h
* app/composite/gimp-composite.[ch]
* app/composite/make-gimp-composite-dispatch.py: made it fit
better into the GIMP source tree:
- do not include any files from headers
- don't use types from <sys/types.h> but use what glib provides
- coding style ...