Kaydet (Commit) 34088fbb authored tarafından Enrico Tröger's avatar Enrico Tröger

Drop Waf build system support

See #768.
üst 1a84bb6e
......@@ -10,7 +10,6 @@
deps.mak
.deps/
.libs/
.lock-waf_*
Makefile
Makefile.in
.dirstamp
......@@ -20,7 +19,6 @@ Makefile.in
#-----------------------------------------------------------------------
/aclocal.m4
/autom4te.cache
/_build_
/build-aux/
/build-stamp
/codenames
......@@ -48,8 +46,6 @@ Makefile.in
/intltool-*
/libtool
/localwin32.mk
/.lock-wscript
/.lock-wafbuild
/ltmain.sh
/m4/lt*.m4
/m4/intltool.m4
......@@ -63,9 +59,6 @@ Makefile.in
/stamp-h.in
/*.tar.*
/TODO.*
# extracted Waf directory (without dot on Windows)
/.waf-*
/waf-*
#-----------------------------------------------------------------------
# /po/
......
......@@ -171,9 +171,9 @@ Geany requires GTK >= 2.24 and GLib >= 2.28. API symbols from newer
GTK/GLib versions should be avoided or made optional to keep the source
code building on older systems.
It is recommended to use the 2.24 API documentation of the GTK
libs (including GLib, GDK and Pango) has the advantages
that you don't get confused by any newer API additions and you
It is recommended to use the 2.24 API documentation of the GTK
libs (including GLib, GDK and Pango) has the advantages
that you don't get confused by any newer API additions and you
don't have to take care about whether you can use them or not.
Coding
......@@ -484,7 +484,6 @@ Adding a source file foo.[hc] in src/ or plugins/
-------------------------------------------------
* Add foo.c, foo.h to SRCS in path/Makefile.am.
* Add foo.o to OBJS in path/makefile.win32.
* Add path/foo.c to geany_sources in wscript.
* Add path/foo.c to po/POTFILES.in (for string translation).
Adding a filetype
......@@ -548,7 +547,6 @@ When adding a lexer, update:
* scintilla/Makefile.am
* scintilla/makefile.win32
* wscript
* scintilla/src/Catalogue.cxx - add a LINK_LEXER command *manually*
For syntax highlighting, you will need to edit highlighting.c and
......@@ -637,7 +635,6 @@ Method
``````
* Add foo.c to SRCS in Makefile.am.
* Add foo.o to OBJS in makefile.win32.
* Add path/foo.c to geany_sources in wscript.
* Add Foo to parsers.h
* Add TM_PARSER_FOO to tagmanager/src/tm_parser.h. The list here must follow
exactly the order in parsers.h.
......
......@@ -15,8 +15,6 @@ WIN32_BUILD_FILES = \
EXTRA_DIST = \
autogen.sh \
wscript \
waf \
geany.desktop.in \
geany.pc.in \
geany.spec \
......
......@@ -132,8 +132,7 @@ of these tools are recommended.
Autotools based build system
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The Autotools based build system is very mature and has been well tested.
To use it, you just need the Make tool, preferably GNU Make.
To compile Geany yourself, you just need the Make tool, preferably GNU Make.
Then run the following commands::
......@@ -148,65 +147,6 @@ Or via sudo::
% sudo make install
Waf based build system
^^^^^^^^^^^^^^^^^^^^^^
The Waf build system is still quite young and under heavy development but already in a
usable state. In contrast to the Autotools system, Waf needs Python. So before using Waf, you need
to install Python on your system.
The advantage of the Waf build system over the Autotools based build system is that the whole
build process might be a bit faster. Especially when you use the Waf
cache feature for repetitive builds (e.g. when changing only a few source files
to test something) will become much faster since Waf will cache and re-use the
unchanged built files and only compile the changed code again. See `Waf Cache`_ for details.
To build Geany with Waf as run::
$ ./waf configure
$ ./waf build
Then as root::
% ./waf install
Waf cache
`````````
The Waf build system has a nice and interesting feature which can help to avoid
a lot of unnecessary rebuilding of unchanged code. This often happens when developing new features
or trying to debug something in Geany.
Waf is able to store and retrieve the object files from a cache. This cache is declared
using the environment variable ``WAFCACHE``.
A possible location of the cache directory could be ``~/.cache/waf``. In order to make use of
this, you first need to create this directory::
$ mkdir -p ~/.cache/waf
then add the environment variable to your shell configuration (the following example is for
Bash and should be adjusted to your used shell)::
export WAFCACHE=/home/username/.cache/waf
Remember to replace ``username`` with your actual username.
More information about the Waf cache feature are available at
http://code.google.com/p/waf/wiki/CacheObjectFiles.
Cleaning the cache
******************
You should be careful about the size of the cache directory as it may
grow rapidly over time.
Waf doesn't do any cleaning or other house-keeping of the cache yet, so you need to keep it
clean by yourself.
An easy way to keep it clean is to run the following command regularly to remove old
cached files::
$ find /home/username/.cache/waf -mtime +14 -exec rm {} \;
This will delete all files in the cache directory which are older than 14 days.
For details about the ``find`` command and its options, check its manual page.
Custom installation
^^^^^^^^^^^^^^^^^^^
The configure script supports several common options, for a detailed
......@@ -214,11 +154,6 @@ list, type::
$ ./configure --help
or::
$ ./waf --help
(depending on which build system you use).
You may also want to read the INSTALL file for advanced installation
options.
......
......@@ -9,7 +9,7 @@ to filter commits by a particular developer name.
Ensure version numbers are all updated in:
configure.ac geany_private.rc geany.exe.manifest
win32-config.h wscript doc/geany.txt
win32-config.h doc/geany.txt
Ensure release date is updated in:
NEWS doc/geany.txt doc/geany.1.in
Check GEANY_CODENAME is set in src/geany.h.
......
......@@ -62,10 +62,6 @@ Geany plug-ins. You do not need to install this package to use Geany.
%prep
%setup -q
# remove waf since this isn't needed for the build, we're building the package
# with autotools
rm -f waf
rm -f wscript
%build
%configure
......
#! /bin/sh
#
# This script creates a "configure" script and a Makefile to imitate autotools
# but Waf is actually used to build
WAF="./waf"
# Makefile
cat > Makefile << EOF
.PHONY: build configure
all: build
build:
@$WAF build
install:
@if test -n "\$(DESTDIR)"; then \\
./waf install --destdir="\$(DESTDIR)"; \\
else \\
./waf install; \\
fi;
uninstall:
@if test -n "\$(DESTDIR)"; then \\
$WAF uninstall --destdir="\$(DESTDIR)"; \\
else \\
$WAF uninstall; \\
fi;
clean:
@$WAF clean
distclean:
@$WAF distclean
@-rm -f Makefile
htmldoc:
@$WAF --htmldoc
apidoc:
@$WAF --apidoc
configure:
@$WAF configure
EOF
template="
all: build
build:
cd .. && $WAF build
"
echo "$template" > src/Makefile
echo "$template" > tagmanager/Makefile
echo "$template" > scintilla/Makefile
echo "$template" > plugins/Makefile
# configure
cat > configure << EOF
#!/bin/sh
$WAF configure \$@
EOF
chmod 755 configure
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment