remove autotools

Having two build systems works when verifying that the new one can take over -
but the overhead of keeping two systems working is large - and makes it
complicated for contributors. Getting rid of autotools also allows us to
continue refactoring away file names and directory layout away from constraints
from autotools.
parent e1b91c80
Pipeline #105289 passed with stages
in 10 minutes and 4 seconds
The git version of GEGL is known to work with the following autotools:
- GNU autoconf 2.54
- GNU automake 1.9.6
- GNU libtool 1.5
Newer versions of these tools will probably work.
To compile a git version of GEGL on your system, you will need to take
several steps to setup the tree for compilation. You can do all these
steps at once by running:
gegl> ./autogen.sh
Basically this does the following for you (but see autogen.sh for
exactly what is happening):
gegl> aclocal
gegl> automake
gegl> autoconf
gegl> configure
The autogen in GEGL also uses ruby to generate some of the plug-ins, and
the API reference.
Before running autogen.sh, make sure you have libtool in your path.
Note that autogen.sh runs configure for you. If you wish to pass options
to configure you can give those options to autogen.sh and they
will be passed on.
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
# The libs directory needs to be before anything which can depend on its
# libraries, otherwise any potentially rebuilt libs won't be picked up until
# the next run of make.
SUBDIRS=\
libs \
opencl \
gegl \
libs/npd \
seamless-clone \
bin \
tools \
operations \
examples \
tests \
po
if ENABLE_DOCS
SUBDIRS+= docs
endif
# hack to make perf folder be included in dist, it doesn't harm to include perf in tests
# for people that enable workshop, and as a side effect it gets disted.
if ENABLE_WORKSHOP
SUBDIRS+= perf
endif
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = gegl-$(GEGL_API_VERSION).pc
built_dist_files = README NEWS
EXTRA_DIST = \
$(built_dist_files) \
autogen.sh \
gegl-uninstalled.pc.in \
m4/introspection.m4 \
gegl.pc.in
# DISTCHECK_CONFIGURE_FLAGS = --enable-introspection
DISTCLEANFILES = \
$(built_dist_files)
if HAVE_W3M
dist-check-w3m:
NEWS: docs/NEWS.html
$(W3M) -cols 72 -dump docs/NEWS.html > $@
README: all docs/index.html
$(W3M) -cols 72 -dump docs/index.html > $@
else
dist-check-w3m:
@echo "*** w3m must be available in order to make dist"
@false
endif
dist-hook: dist-check-w3m
website: all
$(MAKE) -C docs website
### ChangeLog generation
CHANGELOG_START = 5e2cc2146486ce0c1ebc0cbf68770dafafcb123f
ChangeLog: $(srcdir)/ChangeLog
$(srcdir)/ChangeLog:
@echo Creating $@
@if test -d "$(srcdir)/.git"; then \
(GIT_DIR=$(top_srcdir)/.git ./missing --run \
git log $(CHANGELOG_START)^.. --stat) | fmt --split-only > $@.tmp \
&& mv -f $@.tmp $@ \
|| ($(RM) $@.tmp; \
echo Failed to generate ChangeLog, your ChangeLog may be outdated >&2; \
(test -f $@ || echo git-log is required to generate this file >> $@)); \
else \
test -f $@ || \
(echo A git checkout and git-log is required to generate ChangeLog >&2 && \
echo A git checkout and git-log is required to generate this file >> $@); \
fi
.PHONY: $(srcdir)/ChangeLog
#!/bin/sh
# This script does all the magic calls to automake/autoconf and
# friends that are needed to configure a cvs checkout. As described in
# the file HACKING you need a couple of extra tools to run this script
# successfully.
#
# If you are compiling from a released tarball you don't need these
# tools and you shouldn't use this script. Just call ./configure
# directly.
test -n "$srcdir" || srcdir=`dirname "$0"`
test -n "$srcdir" || srcdir=.
ORIGDIR=`pwd`
cd $srcdir
AUTORECONF=`which autoreconf`
if test -z $AUTORECONF; then
echo "*** No autoreconf found, please install it ***"
exit 1
fi
autoreconf --force --install --verbose || exit 1
cd $ORIGDIR
test -n "$NOCONFIGURE" || "$srcdir/configure" "$@"
if OS_WIN32
no_undefined = -no-undefined
endif
SUBDIRS=lua
AM_CPPFLAGS = \
-I$(top_srcdir) \
-I$(top_srcdir)/bin \
-I$(top_builddir)/bin \
-I$(top_builddir)/gegl \
-I$(top_srcdir)/gegl \
-I$(top_builddir)/gegl/buffer \
-I$(top_srcdir)/gegl/buffer \
-I$(top_builddir)/gegl/graph \
-I$(top_srcdir)/gegl/graph \
-I$(top_builddir)/gegl/module \
-I$(top_srcdir)/gegl/module \
-I$(top_builddir)/gegl/operation \
-I$(top_srcdir)/gegl/operation \
-I$(top_builddir)/gegl/opencl \
-I$(top_srcdir)/gegl/opencl \
-I$(top_builddir)/gegl/process \
-I$(top_srcdir)/gegl/process \
-I$(top_builddir)/gegl/property-types \
-I$(top_srcdir)/gegl/property-types
AM_CFLAGS = \
$(DEP_CFLAGS) $(BABL_CFLAGS) $(PNG_CFLAGS) \
$(MRG_CFLAGS) $(GEXIV2_CFLAGS)
AM_LDFLAGS = \
$(no_undefined) ../gegl/libgegl-$(GEGL_API_VERSION).la \
$(DEP_LIBS) $(BABL_LIBS) $(PNG_LIBS) $(LIBSPIRO) $(MATH_LIB) \
$(MRG_LIBS) $(GEXIV2_LIBS)
if HAVE_LUA
AM_LDFLAGS += $(LUA_LIBS)
AM_CFLAGS += $(LUA_CFLAGS)
endif
bin_PROGRAMS = gegl
BUILT_SOURCES=argvs-commands.inc
CLEANFILES=argvs-commands.inc
gegl_SOURCES = \
argvs.c \
argvs.h \
gegl.c \
gegl-options.c \
gegl-options.h \
gegl-path-smooth.c \
gegl-path-smooth.h
argvs-commands.inc: gegl.c ui-core.c ui-viewer.c ui-collection.c argvs.c Makefile
@echo " GEN" $@
@$(top_srcdir)/tools/argvs_extract.sh $(top_srcdir)/bin/*.c > $(top_builddir)/bin/argvs-commands.inc
if HAVE_MRG
if HAVE_GEXIV2
gegl_SOURCES += ui-core.c ui.h ui-viewer.c ui-collection.c mrg-gegl.c mrg-gegl.h
AM_CFLAGS += $(SDL_CFLAGS)
AM_LDFLAGS += $(SDL_LIBS)
endif
endif
if HAVE_SPIRO
gegl_SOURCES += gegl-path-spiro.h gegl-path-spiro.c
endif
luadatadir = $(gegldatadir)/lua
luadata_DATA = $(wildcard *.lua)
This diff is collapsed.
#DIST_SUBDIRS= graphics
#
# The patterns used for html creation in the gegl build system
# is very small, and should probably be documented in a tutorial.
#
gtkdochtmldir = $(datadir)/gtk-doc/html/gegl
gtkdocimgdir = $(gtkdochtmldir)/images
gtkdocexampledir = $(gtkdocimgdir)/examples
# run the sync-txt target after adding a text file
sync-txt:
txts=ASC_DOC="index.html "`for a in *.txt;do echo -n ' '$$a|sed s/txt/html/;done;echo ''`;\
txts=$$txts" #ASC_DOC_HOTPATCH";\
cat Makefile.am | sed "s/ASC\_DOC.*ASC_DOC_HOTPATCH/$$txts/" > /tmp/mktmp; cp /tmp/mktmp Makefile.am;
ASC_DOC=index.html abyss_policy.html build.html commandline.html contribute.html copyright.html development.html editor.html environment.html features.html gcut.html gegl-chain.html glossary.html hello-world.html index.html journal.html NEWS.html operation-api.html source-overview.html #ASC_DOC_HOTPATCH
HTML_FILES = \
class-hierarchy.html
GTKDOC_FILES = \
gegl.css
if HAVE_RUBY
HTML_FILES += images/inheritance.png
endif
if HAVE_ENSCRIPT
ENSCRIPT_FILES = \
brightness-contrast.c.html \
gegl.h.html \
gegl-operation.h.html \
gegl-operation-filter.h.html \
gegl-operation-composer.h.html \
gegl-operation-area-filter.h.html \
gegl-operation-meta.h.html \
gegl-operation-point-composer.h.html \
gegl-operation-point-filter.h.html \
gegl-operation-point-render.h.html \
gegl-operation-temporal.h.html \
gegl-operation-sink.h.html \
gegl-operation-source.h.html \
gegl-plugin.h.html
HTML_FILES += $(ENSCRIPT_FILES)
GTKDOC_FILES += $(ENSCRIPT_FILES)
endif
if HAVE_ASCIIDOC
HTML_FILES += $(ASC_DOC)
endif
EXTRA_DIST = \
ChangeLog \
development.txt \
NEWS.txt \
devhelp.css \
gegl.css \
images/GEGL.png \
images/GEGL.svg \
images/gaussian-blur-graph.png \
images/gegl.ico \
images/standard-input.png \
images/standard-panorama.png \
images/standard-aux.png \
index.txt.in
BUILT_EXTRA_DIST = class-hierarchy.html $(ASC_DOC)
EXTRA_DIST += $(BUILT_EXTRA_DIST)
EXAMPLE_FILES = $(wildcard $(srcdir)/operations/images/*.png)
# EXTRA_DIST += $(EXAMPLE_FILES)
dist_gtkdochtml_DATA = $(GTKDOC_FILES)
dist_gtkdocimg_DATA = \
images/standard-input.png \
images/standard-panorama.png \
images/standard-aux.png
#dist_gtkdocexample_DATA = $(EXAMPLE_FILES)
CLEANFILES = README $(HTML_FILES) index.txt
DISTCLEANFILES = index.txt
MAINTAINERCLEANFILES = $(BUILT_EXTRA_DIST)
exclusion_pattern = "load|buffer-source|pixbuf|nop|clone|convert-format|introspect|layer|image-compare|load|open-buffer|svg-load|exr-load|jpg-load|png-load|magick-load|box-blur|stretch-contrast|remap|matting-global|exp-combine|dropshadow|kuwahara|box-percentile|disc-percentile|snn-percentile|line-profile|buffer-cache|warp|mandelbrot|hstack|v4l2|v4l|integral-image"
all-local: $(HTML_FILES) examples
examples: $(top_builddir)/tools/gegl-tester$(EXEEXT) $(top_srcdir)/operations/*/*.c
@if test -d operations/images; then :; else \
echo "Generating example images" ; \
mkdir -p operations/images; \
BABL_TOLERANCE=0.0 \
GEGL_SWAP=RAM GEGL_PATH=$(top_builddir)/operations \
$(top_builddir)/tools/gegl-tester$(EXEEXT) --all -o operations/images \
-d $(srcdir)/images/ -e $(exclusion_pattern) ; \
(cd operations; GEGL_PATH=$(top_builddir)/../operations$(EXEEXT) $(top_builddir)/../tools/operations_html ) \
fi
class-hierarchy.html: $(top_builddir)/tools/introspect$(EXEEXT) $(top_srcdir)/operations/*/*.c $(top_srcdir)/gegl/*.c
GEGL_SWAP=RAM GEGL_PATH=$(top_builddir)/operations \
$(top_builddir)/tools/introspect$(EXEEXT) > $@
gegl.h.html: $(top_srcdir)/gegl/gegl.h
if HAVE_ENSCRIPT
$(ENSCRIPT) -E --color --language=html -p$@ $<
endif
gegl-plugin.h.html: $(top_srcdir)/gegl/gegl-plugin.h
if HAVE_ENSCRIPT
$(ENSCRIPT) -E --color --language=html -p$@ $<
endif
brightness-contrast.c.html: $(top_srcdir)/operations/common/brightness-contrast.c
if HAVE_ENSCRIPT
$(ENSCRIPT) -E --color --language=html -p$@ $<
endif
gegl-operation.h.html: $(top_srcdir)/gegl/operation/gegl-operation.h
if HAVE_ENSCRIPT
$(ENSCRIPT) -E --color --language=html -p$@ $<
endif
gegl-operation-composer.h.html: $(top_srcdir)/gegl/operation/gegl-operation-composer.h
if HAVE_ENSCRIPT
$(ENSCRIPT) -E --color --language=html -p$@ $<
endif
gegl-operation-area-filter.h.html: $(top_srcdir)/gegl/operation/gegl-operation-area-filter.h
if HAVE_ENSCRIPT
$(ENSCRIPT) -E --color --language=html -p$@ $<
endif
gegl-operation-filter.h.html: $(top_srcdir)/gegl/operation/gegl-operation-filter.h
if HAVE_ENSCRIPT
$(ENSCRIPT) -E --color --language=html -p$@ $<
endif
gegl-operation-meta.h.html: $(top_srcdir)/gegl/operation/gegl-operation-meta.h
if HAVE_ENSCRIPT
$(ENSCRIPT) -E --color --language=html -p$@ $<
endif
gegl-operation-point-composer.h.html: $(top_srcdir)/gegl/operation/gegl-operation-point-composer.h
if HAVE_ENSCRIPT
$(ENSCRIPT) -E --color --language=html -p$@ $<
endif
gegl-operation-temporal.h.html: $(top_srcdir)/gegl/operation/gegl-operation-temporal.h
if HAVE_ENSCRIPT
$(ENSCRIPT) -E --color --language=html -p$@ $<
endif
gegl-operation-point-filter.h.html: $(top_srcdir)/gegl/operation/gegl-operation-point-filter.h
if HAVE_ENSCRIPT
$(ENSCRIPT) -E --color --language=html -p$@ $<
endif
gegl-operation-point-render.h.html: $(top_srcdir)/gegl/operation/gegl-operation-point-render.h
if HAVE_ENSCRIPT
$(ENSCRIPT) -E --color --language=html -p$@ $<
endif
gegl-operation-sink.h.html: $(top_srcdir)/gegl/operation/gegl-operation-sink.h
if HAVE_ENSCRIPT
$(ENSCRIPT) -E --color --language=html -p$@ $<
endif
gegl-operation-source.h.html: $(top_srcdir)/gegl/operation/gegl-operation-source.h
if HAVE_ENSCRIPT
$(ENSCRIPT) -E --color --language=html -p$@ $<
endif
API_DOC_FILES = \
$(top_srcdir)/gegl/gegl.h \
$(top_srcdir)/gegl/gegl-init.h \
$(top_srcdir)/gegl/gegl-operations-util.h \
$(top_srcdir)/gegl/graph/gegl-node.h \
$(top_srcdir)/gegl/process/gegl-processor.h \
$(top_builddir)/gegl/gegl-version.h \
$(top_srcdir)/gegl/buffer/gegl-buffer.h \
$(top_srcdir)/gegl/buffer/gegl-buffer-iterator.h\
$(top_srcdir)/gegl/gegl-utils.h \
$(top_srcdir)/gegl/gegl-random.h \
$(top_srcdir)/gegl/property-types/gegl-color.h \
$(top_srcdir)/gegl/gegl-matrix.h \
$(top_srcdir)/gegl/property-types/gegl-path.h \
$(top_srcdir)/gegl/property-types/gegl-curve.h \
$(top_srcdir)/gegl/gegl-apply.h
images/inheritance.png: Makefile
if HAVE_RUBY
if HAVE_DOT
mkdir -p images
$(top_srcdir)/tools/gobj2dot.rb $(top_srcdir) | $(DOT) -Tpng > $@
endif
endif
%.html: %.txt $<\
$(top_srcdir)/AUTHORS \
gegl.css \
$(top_srcdir)/examples/hello-world.c \
$(top_builddir)/bin/gegl$(EXEEXT) \
Makefile.am
if HAVE_ASCIIDOC
@echo "HTML: $@"
$(ASCIIDOC) --unsafe -o $@ -a stylesheet=$(abs_srcdir)/gegl.css -a quirks! $<
else
@echo "*** asciidoc must be available in order to make dist"
@false
endif
clean-local:
rm -rf operations
distclean-local:
if test $(srcdir) = .; then :; else \
rm -f $(BUILT_EXTRA_DIST); \
fi
# require asciidoc when making dist
#
dist-check-asciidoc:
if HAVE_ASCIIDOC
else
@echo "*** asciidoc must be available in order to make dist"
@false
endif
dist-hook: dist-check-asciidoc
SUBDIRS = data
EXTRA_DIST = $(wildcard $(srcdir)/*.py)
AM_CPPFLAGS = \
-I$(top_srcdir) \
-I$(top_builddir)/gegl \
-I$(top_srcdir)/gegl \
-I$(top_builddir)/gegl/buffer \
-I$(top_srcdir)/gegl/buffer \
-I$(top_builddir)/gegl/graph \
-I$(top_srcdir)/gegl/graph \
-I$(top_builddir)/gegl/module \
-I$(top_srcdir)/gegl/module \
-I$(top_builddir)/gegl/operation \
-I$(top_srcdir)/gegl/operation \
-I$(top_builddir)/gegl/opencl \
-I$(top_srcdir)/gegl/opencl \
-I$(top_builddir)/gegl/process \
-I$(top_srcdir)/gegl/process \
-I$(top_builddir)/gegl/property-types \
-I$(top_srcdir)/gegl/property-types
AM_CFLAGS = $(DEP_CFLAGS) $(BABL_CFLAGS) $(SDL_CFLAGS)
AM_LDFLAGS = \
$(top_builddir)/gegl/libgegl-$(GEGL_API_VERSION).la \
$(BABL_LIBS) \
$(DEP_LIBS) \
$(SDL_LIBS) \
$(MATH_LIB)
noinst_PROGRAMS = \
2geglbuffer \
gegl-convert \
gegl-slicer \
video-invert \
geglbuffer-add-image \
geglbuffer-clock \
frame-counter \
hello-world
frame_counter_SOURCES = frame-counter.c
2geglbuffer_SOURCES = 2geglbuffer.c
gegl_convert_SOURCES = gegl-convert.c
gegl_slicer_SOURCES = gegl-slicer.c
video_invert_SOURCES = video-invert.c
geglbuffer_add_image_SOURCES = geglbuffer-add-image.c
geglbuffer_clock_SOURCES = geglbuffer-clock.c
hello_world_SOURCES = hello-world.c
if HAVE_SDL2
noinst_PROGRAMS += sdl-draw
sdl_draw_SOURCES = sdl-draw.c
sdl_draw_LDADD = $(SDL2_LIBS)
sdl_draw_CFLAGS = $(AM_CFLAGS) $(SDL2_CFLAGS)
endif
if HAVE_GEXIV2
noinst_PROGRAMS += gegl-video
gegl_video_SOURCES = gegl-video.c
gegl_video_LDADD = $(GEXIV2_LIBS)
gegl_video_CFLAGS = $(AM_CFLAGS) $(GEXIV2_CFLAGS)
endif
EXTRA_DIST=$(wildcard $(srcdir)/*.png) $(wildcard $(srcdir)/*.jpg)
Name: Gegl Uninstalled
Description: Gegl Library, Not Installed
Version: @VERSION@
Requires: @GLIB_PACKAGES@
Libs: ${pc_top_builddir}/${pcfiledir}/gegl/libgegl.la @MATH_LIB@
Cflags: -I${pc_top_builddir}/${pcfiledir}/@srcdir@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
pluginsdir=@libdir@/@PACKAGE_NAME@-@GEGL_API_VERSION@
Name: GEGL
Description: Generic Graphics Library
Version: @GEGL_REAL_VERSION@
Requires: @GLIB_PACKAGES@ babl
Libs: -L${libdir} -l@PACKAGE_NAME@-@GEGL_API_VERSION@ -l@PACKAGE_NAME@-npd-@GEGL_API_VERSION@ @MATH_LIB@
Cflags: -I${includedir}/@PACKAGE_NAME@-@GEGL_API_VERSION@
### GObject introspection
-include $(INTROSPECTION_MAKEFILE)
INTROSPECTION_GIRS =
INTROSPECTION_SCANNER_ARGS = --warn-all --add-include-path="$(srcdir)" --add-include-path="$(shell $(PKG_CONFIG) --define-variable=datadir="$(datadir)" --variable=girdir gobject-introspection-1.0)"
INTROSPECTION_COMPILER_ARGS = --includedir="$(srcdir)" --includedir="$(shell $(PKG_CONFIG) --define-variable=datadir="$(datadir)" --variable=girdir gobject-introspection-1.0)"
INTROSPECTION_SCANNER_ENV = CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CPPFLAGS="$(CPPFLAGS)" CXXFLAGS="$(CXXFLAGS)"
if PLATFORM_WIN32
no_undefined = -no-undefined
endif
SUBDIRS = buffer graph module operation process property-types opencl
CLEANFILES =
AM_CPPFLAGS = \
-I$(top_srcdir) \
-I$(top_builddir)/gegl \
-I$(top_srcdir)/gegl \
-I$(top_builddir)/gegl/buffer \
-I$(top_srcdir)/gegl/buffer \
-I$(top_builddir)/gegl/graph \
-I$(top_srcdir)/gegl/graph \
-I$(top_builddir)/gegl/operation \
-I$(top_srcdir)/gegl/operation \
-I$(top_builddir)/gegl/opencl \
-I$(top_srcdir)/gegl/opencl \
-I$(top_builddir)/gegl/process \
-I$(top_srcdir)/gegl/process \
-I$(top_builddir)/gegl/property-types \
-I$(top_srcdir)/gegl/property-types \
-DLIBDIR=\""$(libdir)"\" \
-DG_LOG_DOMAIN=\"GEGL\" \
-DGEGL_LOCALEDIR=\""$(GEGL_LOCALEDIR)"\"
AM_CFLAGS = $(DEP_CFLAGS) $(BABL_CFLAGS)
AM_LDFLAGS = \
$(no_undefined) -export-dynamic -version-info $(GEGL_LIBRARY_VERSION)
LIBS = \
$(DEP_LIBS) $(BABL_LIBS) $(ZLIB_LIBS) $(MATH_LIB)
GEGL_publicdir = $(includedir)/gegl-$(GEGL_API_VERSION)
GEGL_introspectable_headers = \
gegl.h \
gegl-types.h \
gegl-apply.h \
gegl-enums.h \
gegl-operations-util.h \
gegl-utils.h \
gegl-matrix.h \
gegl-lookup.h \
gegl-random.h \
gegl-parallel.h \
gegl-init.h \
gegl-version.h \
buffer/gegl-buffer.h \
buffer/gegl-buffer-matrix2.h \
buffer/gegl-buffer-iterator.h \
buffer/gegl-buffer-backend.h \
buffer/gegl-buffer-swap.h \
buffer/gegl-memory.h \
buffer/gegl-rectangle.h \
buffer/gegl-scratch.h \
buffer/gegl-tile-backend.h \
buffer/gegl-tile-handler.h \
buffer/gegl-tile-source.h \
buffer/gegl-buffer-enums.h \
graph/gegl-node.h \
process/gegl-graph-debug.h \
process/gegl-processor.h \
property-types/gegl-paramspecs.h \
property-types/gegl-color.h \
property-types/gegl-audio-fragment.h \
property-types/gegl-path.h \
property-types/gegl-curve.h
GEGL_public_HEADERS = \
$(GEGL_introspectable_headers) \
gegl-cpuaccel.h \
gegl-debug.h \
gegl-op.h \
gegl-plugin.h \
buffer/gegl-tile.h \
opencl/gegl-buffer-cl-iterator.h
GEGL_sources = \
gegl-apply.c \
gegl-config.c \
gegl-cpuaccel.c \
gegl-dot.c \
gegl-dot-visitor.c \
gegl-enums.c \
gegl-init.c \
gegl-instrument.c \
gegl-introspection-support.c \
gegl-utils.c \
gegl-lookup.c \
gegl-xml.c \
gegl-gio.c \
gegl-random.c \
gegl-parallel.c \
gegl-serialize.c \
gegl-stats.c \
gegl-matrix.c \
\
gegl-config.h \
gegl-cpuaccel.h \