## Makefile.am fragment, included by src/Makefile.am.


# ################################################
#
#  I N K S C A P E
#
# ################################################

# libinkpre.a: any object that's sharable between inkscape & inkview,
# and isn't needed by object files in subdirectories (i.e. libinkpre.a
# comes before subdirectory libraries on the link line).
#
# Excludes winmain.cpp (a gui wrapper around main): I'm guessing that
# it needs to be explicitly listed as a source of each graphical
# binary: it isn't (to my knowledge) called by main (whether directly
# or indirectly), so I don't think that putting it in a library will
# suffice to get it linked in.  Windows devel please confirm.  -- pjrm.

libinkpre_a_SOURCES =	\
	algorithms/find-last-if.h	\
	algorithms/longest-common-suffix.h	\
	approx-equal.h remove-last.h	\
	arc-context.cpp arc-context.h	\
	attributes.cpp attributes.h	\
	axis-manip.cpp axis-manip.h	\
	bad-uri-exception.h	\
	box3d.cpp box3d.h \
	box3d-context.cpp box3d-context.h \
	box3d-side.cpp box3d-side.h \
	brokenimage.xpm	\
	color-rgba.h	\
	color-profile.cpp color-profile.h	\
	color-profile-fns.h	\
	common-context.cpp common-context.h\
	conditions.cpp conditions.h\
	conn-avoid-ref.cpp conn-avoid-ref.h	\
	connector-context.cpp connector-context.h	\
	connection-pool.h \
	console-output-undo-observer.h console-output-undo-observer.cpp \
	context-fns.cpp context-fns.h \
	desktop-affine.cpp desktop-affine.h	\
	desktop-events.cpp desktop-events.h	\
	desktop-handles.cpp desktop-handles.h	\
	desktop-style.cpp desktop-style.h	\
	desktop.cpp desktop.h	\
	device-manager.cpp	\
	device-manager.h	\
	document-undo.cpp	\
	document.cpp document.h document-private.h	\
	document-subset.cpp document-subset.h	\
	doxygen-main.cpp \
	draw-anchor.cpp	\
	draw-anchor.h	\
	draw-context.cpp draw-context.h	\
	dropper-context.cpp dropper-context.h	\
	dyna-draw-context.cpp dyna-draw-context.h	\
	enums.h	\
	eraser-context.cpp eraser-context.h	\
	event-context.cpp event-context.h	\
	event-log.cpp event-log.h event.h      \
	extract-uri.cpp extract-uri.h	\
	file.cpp file.h	\
	filter-chemistry.cpp filter-chemistry.h \
	filter-enums.cpp filter-enums.h \
	flood-context.cpp flood-context.h	\
	forward.h	\
	gradient-context.cpp gradient-context.h \
	gradient-drag.cpp gradient-drag.h \
	help.cpp help.h	\
	helper-fns.h \
	icon-size.h \
	id-clash.cpp id-clash.h	\
	ige-mac-menu.h ige-mac-menu.c \
	inkscape-stock.cpp inkscape-stock.h\
	inkscape.cpp inkscape.h inkscape-private.h	\
	interface.cpp interface.h	\
	isinf.h \
	isnormal.h \
	knot-enums.h	\
	knot-holder-entity.h knot-holder-entity.cpp	\
	knot.cpp knot.h	\
	knotholder.cpp knotholder.h	\
	layer-fns.cpp layer-fns.h	\
	layer-manager.cpp layer-manager.h	\
	line-geometry.cpp line-geometry.h	\
	lpe-tool-context.cpp lpe-tool-context.h	\
	macros.h	\
	main-cmdlineact.cpp main-cmdlineact.h \
	media.cpp media.h	\
	message-context.cpp message-context.h \
	message-stack.cpp message-stack.h \
	message.h \
	mod360.cpp mod360.h	\
	modifier-fns.h	\
	node-context.cpp node-context.h	\
	nodepath.cpp nodepath.h	\
	object-edit.cpp object-edit.h	\
	object-hierarchy.cpp object-hierarchy.h \
	ui/context-menu.cpp \
	ui/context-menu.h	\
	path-chemistry.cpp path-chemistry.h	\
	path-prefix.h	\
	pen-context.cpp	\
	pen-context.h	\
	pencil-context.cpp	\
	pencil-context.h	\
	persp3d.cpp persp3d.h	\
	persp3d-reference.cpp persp3d-reference.h	\
	perspective-line.cpp perspective-line.h	\
	preferences.cpp preferences.h \
	preferences-skeleton.h	\
	menus-skeleton.h	\
	prefix.cpp	\
	prefix.h	\
	print.cpp print.h	\
	profile-manager.cpp	\
	profile-manager.h	\
	proj_pt.cpp proj_pt.h	\
	rect-context.cpp rect-context.h	\
	require-config.h \
	rubberband.cpp rubberband.h	\
	satisfied-guide-cns.cpp satisfied-guide-cns.h	\
	selcue.cpp selcue.h \
	select-context.cpp select-context.h	\
	selection-chemistry.cpp selection-chemistry.h	\
	selection-describer.cpp selection-describer.h   \
	selection.cpp selection.h	\
	seltrans-handles.cpp seltrans-handles.h	\
	seltrans.cpp seltrans.h	\
	shape-editor.cpp shape-editor.h \
	shortcuts.cpp shortcuts.h	\
	snap.cpp snap.h	\
	snap-preferences.cpp snap-preferences.h \
	snapped-curve.cpp snapped-curve.h \
	snapped-line.cpp snapped-line.h \
	snapped-point.cpp snapped-point.h \
	snapper.cpp snapper.h \
	syseq.h \
	transf_mat_3x4.cpp transf_mat_3x4.h	\
	line-snapper.cpp line-snapper.h \
	guide-snapper.cpp guide-snapper.h \
	object-snapper.cpp object-snapper.h \
	sp-anchor.cpp sp-anchor.h	\
	sp-clippath.cpp sp-clippath.h	\
	sp-conn-end-pair.cpp sp-conn-end-pair.h	\
	sp-conn-end.cpp sp-conn-end.h	\
	sp-cursor.cpp sp-cursor.h	\
	sp-defs.cpp sp-defs.h	\
	sp-desc.cpp sp-desc.h	\
	sp-ellipse.cpp sp-ellipse.h	\
	sp-filter-fns.h	\
	sp-filter-primitive.cpp	\
	sp-filter-primitive.h	\
	sp-filter-reference.cpp	\
	sp-filter-reference.h	\
	sp-filter-units.h	\
	sp-filter.cpp sp-filter.h number-opt-number.h	\
	sp-flowdiv.h sp-flowdiv.cpp \
	sp-flowregion.h sp-flowregion.cpp \
	sp-flowtext.h sp-flowtext.cpp \
        sp-font.cpp sp-font.h \
        sp-font-face.cpp sp-font-face.h \
        sp-glyph.cpp sp-glyph.h \
        sp-missing-glyph.cpp sp-missing-glyph.h \
        sp-glyph-kerning.cpp sp-glyph-kerning.h \
	sp-gaussian-blur.cpp sp-gaussian-blur.h	\
	sp-gaussian-blur-fns.h	\
	sp-gradient-fns.h	\
	sp-gradient-reference.cpp	\
	sp-gradient-reference.h	\
	sp-gradient-spread.h	\
	sp-gradient-units.h	\
	sp-gradient-vector.h	\
	sp-gradient.cpp sp-gradient.h	\
	sp-guide-attachment.h	\
	sp-guide-constraint.h	\
	sp-guide.cpp sp-guide.h	\
	sp-image.cpp sp-image.h	\
	sp-item-group.cpp sp-item-group.h	\
	sp-item-notify-moveto.cpp sp-item-notify-moveto.h	\
	sp-item-rm-unsatisfied-cns.cpp sp-item-rm-unsatisfied-cns.h	\
	sp-item-transform.cpp sp-item-transform.h	\
	sp-item-update-cns.cpp sp-item-update-cns.h	\
	sp-item.cpp sp-item.h	\
	sp-line.cpp sp-line.h	\
	sp-linear-gradient-fns.h	\
	sp-linear-gradient.h	\
	sp-lpe-item.cpp sp-lpe-item.h	\
	sp-marker-loc.h	\
	marker.cpp marker.h	\
	sp-mask.cpp sp-mask.h	\
	sp-metadata.cpp sp-metadata.h	\
	sp-metric.h	\
	sp-metrics.cpp sp-metrics.h	\
	sp-namedview.cpp sp-namedview.h	\
	sp-object-group.cpp sp-object-group.h	\
	sp-object-repr.cpp sp-object-repr.h	\
	sp-object.cpp sp-object.h	\
	sp-offset.cpp sp-offset.h	\
	sp-paint-server.cpp sp-paint-server.h	\
	sp-path.cpp sp-path.h	\
	sp-pattern.cpp sp-pattern.h	\
	sp-polygon.cpp sp-polygon.h	\
	sp-polyline.cpp sp-polyline.h	\
	sp-radial-gradient-fns.h	\
	sp-radial-gradient.h	\
	sp-rect.cpp sp-rect.h	\
	sp-root.cpp sp-root.h	\
	sp-script.cpp sp-script.h	\
	sp-shape.cpp sp-shape.h	\
	sp-spiral.cpp sp-spiral.h	\
	sp-star.cpp sp-star.h	\
	sp-stop-fns.h	\
	sp-stop.h	\
	sp-string.cpp sp-string.h	\
	sp-symbol.cpp sp-symbol.h	\
	sp-switch.cpp sp-switch.h\
	sp-text.cpp sp-text.h	\
	sp-textpath.h	\
	sp-title.cpp sp-title.h	\
	sp-tref-reference.cpp sp-tref-reference.h \
	sp-tref.cpp sp-tref.h \
	sp-tspan.cpp sp-tspan.h	\
	sp-use-reference.cpp sp-use-reference.h	\
	sp-use.cpp sp-use.h	\
	spiral-context.cpp spiral-context.h	\
	splivarot.cpp splivarot.h	\
	star-context.cpp star-context.h	\
	style.cpp style.h	\
	sp-style-elem.cpp sp-style-elem.h	\
	svg-profile.h \
	svg-view.cpp svg-view.h	\
	svg-view-widget.cpp svg-view-widget.h	\
	text-chemistry.cpp text-chemistry.h	\
	text-context.cpp text-context.h	\
	text-editing.cpp text-editing.h	\
	text-tag-attributes.h	\
	tools-switch.cpp tools-switch.h\
	tweak-context.h tweak-context.cpp \
	unicoderange.cpp unicoderange.h \
	uri-references.cpp uri-references.h	\
	vanishing-point.cpp vanishing-point.h	\
	verbs.cpp verbs.h	\
	version.cpp version.h	\
	zoom-context.cpp zoom-context.h

# libinkpost.a: Any object file that needs to be near the end of the link line.
# gradient-chemistry.o is called by some things in display/.
libinkpost_a_SOURCES =	\
	color.cpp color.h	\
	decimal-round.h	\
	dir-util.cpp dir-util.h	\
	ege-adjustment-action.cpp	\
	ege-adjustment-action.h	\
	ege-color-prof-tracker.cpp	\
	ege-color-prof-tracker.h	\
	ege-output-action.cpp	\
	ege-output-action.h	\
	ege-select-one-action.cpp	\
	ege-select-one-action.h	\
	fill-or-stroke.h	\
	filter-chemistry.cpp filter-chemistry.h \
	filter-enums.cpp filter-enums.h \
	fixes.cpp \
	gc-alloc.h	\
	gc-anchored.h gc-anchored.cpp	\
	gc-core.h	\
	gc-finalized.h gc-finalized.cpp	\
	gc-managed.h	\
	gc-soft-ptr.h	\
	gc-allocator.h  \
	gc.cpp	\
	gradient-chemistry.cpp gradient-chemistry.h	\
	ink-action.cpp	\
	ink-action.h	\
	memeq.h	\
	round.h	\
	streq.h	\
	strneq.h	\
	composite-undo-stack-observer.h \
	composite-undo-stack-observer.cpp \
	undo-stack-observer.h \
	unit-constants.h	\
	uri.cpp uri.h	\
	helper/pixbuf-ops.cpp	\
	helper/pixbuf-ops.h

# Additional dependencies

desktop.$(OBJEXT): helper/sp-marshal.h
document.$(OBJEXT): helper/sp-marshal.h
inkscape.$(OBJEXT): helper/sp-marshal.h
knot.$(OBJEXT): helper/sp-marshal.h
selection.$(OBJEXT): helper/sp-marshal.h
sp-object.$(OBJEXT): helper/sp-marshal.h
view.$(OBJEXT): helper/sp-marshal.h


# ################################################
#
#  B I N A R I E S
#
# ################################################


inkscape_SOURCES = main.cpp $(win32_sources)
inkscape_LDADD = $(all_libs)
inkscape_LDFLAGS = --export-dynamic $(kdeldflags)

inkview_SOURCES = inkview.cpp $(win32_sources)
inkview_LDADD = $(all_libs)

libinkversion_a_SOURCES = inkscape-version.cpp inkscape-version.h

# Hack: make inkscape-version.cpp a phony target.
# Create the version file every time "make" is invoked. Overwrite it only
# if it changes. Watch the backslashes!
inkscape-version.cpp:
	VER_PREFIX="$(VERSION)"; \
	if test -x "$(srcdir)/.svn" -a ! -z `which svn`; then \
	    VER_SVNREV=" r`svn info $(srcdir) | sed -n -e '/^Revision:/s/Revision: \(.*\)/\1/p'`"; \
	    if test ! -z "`svn status -q $(srcdir)`"; then \
	         VER_CUSTOM=" custom"; \
	    fi; \
	fi; \
	VERSION="$$VER_PREFIX$$VER_SVNREV$$VER_CUSTOM"; \
	echo "namespace Inkscape { " \
	     "char const *version_string = \"$$VERSION\"; " \
	     "}" > inkscape-version.new.cpp; \
	if cmp -s inkscape-version.new.cpp inkscape-version.cpp; then \
	     rm inkscape-version.new.cpp; \
	else \
	     mv inkscape-version.new.cpp inkscape-version.cpp; \
	fi; \
	echo $$VERSION
.PHONY: inkscape-version.cpp

# ######################
# ### CxxTest stuff ####
# ######################
CXXTEST_TESTSUITES +=			\
	$(srcdir)/MultiPrinter.h	\
	$(srcdir)/TRPIFormatter.h	\
	$(srcdir)/PylogFormatter.h	\
	$(srcdir)/attributes-test.h	\
	$(srcdir)/color-profile-test.h	\
	$(srcdir)/dir-util-test.h	\
	$(srcdir)/extract-uri-test.h	\
	$(srcdir)/mod360-test.h		\
	$(srcdir)/round-test.h		\
	$(srcdir)/preferences-test.h	\
	$(srcdir)/sp-gradient-test.h	\
	$(srcdir)/sp-style-elem-test.h	\
	$(srcdir)/style-test.h		\
	$(srcdir)/test-helpers.h	\
	$(srcdir)/verbs-test.h
