Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drop Waf build system support #769

Merged
merged 1 commit into from Mar 13, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
7 changes: 0 additions & 7 deletions .gitignore
Expand Up @@ -10,7 +10,6 @@
deps.mak
.deps/
.libs/
.lock-waf_*
Makefile
Makefile.in
.dirstamp
Expand All @@ -20,7 +19,6 @@ Makefile.in
#-----------------------------------------------------------------------
/aclocal.m4
/autom4te.cache
/_build_
/build-aux/
/build-stamp
/codenames
Expand Down Expand Up @@ -48,8 +46,6 @@ Makefile.in
/intltool-*
/libtool
/localwin32.mk
/.lock-wscript
/.lock-wafbuild
/ltmain.sh
/m4/lt*.m4
/m4/intltool.m4
Expand All @@ -63,9 +59,6 @@ Makefile.in
/stamp-h.in
/*.tar.*
/TODO.*
# extracted Waf directory (without dot on Windows)
/.waf-*
/waf-*

#-----------------------------------------------------------------------
# /po/
Expand Down
9 changes: 3 additions & 6 deletions HACKING
Expand Up @@ -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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While it’s good to remove trailing white spaces, it should probably not be in this commit.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree in general. In this case it is probably just not worth to make an extra commit for this.

don't have to take care about whether you can use them or not.

Coding
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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.
Expand Down
2 changes: 0 additions & 2 deletions Makefile.am
Expand Up @@ -15,8 +15,6 @@ WIN32_BUILD_FILES = \

EXTRA_DIST = \
autogen.sh \
wscript \
waf \
geany.desktop.in \
geany.pc.in \
geany.spec \
Expand Down
67 changes: 1 addition & 66 deletions doc/geany.txt
Expand Up @@ -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::

Expand All @@ -148,77 +147,13 @@ 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
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.
Expand Down
2 changes: 1 addition & 1 deletion doc/making-a-release
Expand Up @@ -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.
Expand Down
4 changes: 0 additions & 4 deletions geany.spec.in
Expand Up @@ -62,10 +62,6 @@ Geany plug-ins. You do not need to install this package to use Geany.

%prep
%setup -q
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should these 2 lines really be removed?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oops, no. I re-added the missing lines.
Will squash the commits before merging.

# 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
Expand Down
72 changes: 0 additions & 72 deletions scripts/wafinit.sh

This file was deleted.

Binary file removed waf
Binary file not shown.