Commit Graph

29526 Commits

Author SHA1 Message Date
Rich Wareham 8975e143d4 Makefile: use static linkage with bundled libuv
Use the new LibUV_USE_STATIC configuration flag to use static linkage
when using the bundled libuv.
2014-02-26 17:37:22 +00:00
Rich Wareham 970be6d977 CMake: add LibUV_USE_STATIC configuration variable
If LibUV_USE_STATIC is set then the static libuv library will be
preferred to the shared library. This is useful when building with the
bundled libuv but is less useful when building with a system libuv.
2014-02-26 17:36:06 +00:00
Rich Wareham badf94eb33 Merge pull request #134 from HungMingWu/master
add required dependency on Debian/Ubuntu system
2014-02-26 17:23:34 +00:00
Rich Wareham eb48932677 Merge pull request #123 from jbranchaud/adding-contributing-doc
Following GitHub convention by adding a CONTRIBUTING.md file.
2014-02-26 17:22:46 +00:00
Rich Wareham e51427b9a8 Merge pull request #157 from Hywan/readme
Fix Markdown syntax
2014-02-26 16:54:55 +00:00
Rich Wareham 11aac0db88 Merge pull request #166 from rkmathi/issue-165
#165 fix README.md for Building OS X
2014-02-26 16:52:48 +00:00
Ryuichi KAWAMATA (@rkmathi) 15bf8d0478 #165 fix README.md for Building OS X 2014-02-26 21:05:56 +09:00
Rich Wareham 314791dca7 Merge pull request #163 from rjw57/issue-162
Makefile: use "make -C build" idiom
2014-02-26 10:38:38 +00:00
Rich Wareham d12322c5b7 Makefile: use "make -C build" idiom
Change an explicit ``cd build && make`` into the more usual
``${MAKE} -C build`` style of invoking make in a subdirectory. This
should mean that ``make -jN`` from the top-level Makefile should work.

Closes #162.
2014-02-26 10:30:05 +00:00
Rich Wareham de4fbf92d0 link to rt if it provides clock_gettime
As noted in #128, if clock_gettime is provided by librt then it does not
end up being linked into the static libuv.a binary. This might be
considered a bug in libuv but we can address it here.

Detect if librt provides the clock_gettime symbol and, if so, append it
to the list of libraries linked into nvim. On non-librt systems the
behaviour should be as before.
2014-02-26 07:10:21 -03:00
Rich Wareham c3ff8cbb7c prefer linking to static libuv
Explicitly try to find the static libuv library first.

This might be considered a hack and if it weren't a single-use module it
might be preferable to control static versus shared preferences with a
configuration variable.
2014-02-26 07:09:11 -03:00
Rich Wareham e94f933f39 CMakeLists: remove hardcoded .deps directory
We use the standard CMAKE_PREFIX_PATH variable to pass the location of
.deps as a search location on the command line. There is now no need for
explicitly hard-coding it.
2014-02-26 07:09:11 -03:00
Rich Wareham 2a6780431e make use of libuv when found by CMake 2014-02-26 07:09:11 -03:00
Rich Wareham 598f9fba86 Makefile: fetch deps before running CMake
CMake now required libuv so fetch it first.
2014-02-26 07:08:44 -03:00
Rich Wareham 00ca93fb50 automatically discover libuv in CMake
Idiomatically discover if libuv is installed.
2014-02-26 07:08:44 -03:00
Rich Wareham 8aa1d8c71a Makefile: add .deps/ to CMake prefix path
The CMake prefix path is the set of directories CMake searches for
libraries, header files, etc. Use the .deps directory we create when
building libuv as one of those locations.
2014-02-26 07:08:44 -03:00
Rich Wareham e10290c3ea add LibFindMacros CMake macro library 2014-02-26 07:08:26 -03:00
Rich Wareham 809885ea7d add custom CMake module path 2014-02-26 07:08:26 -03:00
Scott Nielsen def17b25fe Remove final build warning
This commit removes a K&R promoted parameter error, the final warning
I have when building.

I realize that this creates only one function that is written in a
different style, but I thought it might be worth it to have a warning
free build.
2014-02-26 06:35:29 -03:00
Scott Nielsen a74c059a3e Remove implicit declaration of vim_strrchr and vim_strncpy 2014-02-26 06:04:30 -03:00
Ivan Enderlin 322255ede6 Fix Markdown syntax. 2014-02-26 09:55:03 +01:00
Thiago de Arruda 72c6523da5 Merge branch 'bundle-libuv' of github.com:rjw57/neovim into rjw57-bundle-libuv 2014-02-26 05:46:10 -03:00
scott-linder 0ef90c13b7 Removes 'proto' dir
See #137 for the issue.

Every header in the proto directory was:

* Given include guards in the form

    #ifndef NEOVIM_FILENAME_H
    #define NEOVIM_FILENAME_H
        ...
    #endif /* NEOVIM_FILENAM_H */

* Renamed from *.pro -> *.h
* Moved from src/proto/ to src/

This would have caused conficts with some existing headers in src/;
rather than merge these conflicts now (which is a whole other can of
worms involving multiple and conditional inclusion), any header in src/
with a conflicting name was renamed from *.h -> *_defs.h (which may or
may not actually describe its purpose, the change is purely a
namespacing issue).

Once all of these changes were made a script was developed to determine
what #includes needed to be added to each source file to describe its
dependencies and allow it to compile; because the script is so short
and I'll just list it here:

    #! /bin/bash

    cd $(dirname $0)

    # Scrapes `make` output for provided error messages and outputs #includes
    # needed to resolve them.
    #   $1 : part of the clang error message between filename and identifier
    list_missing_includes() {
        for file_missing_pair in $(CC=clang make 2>&1 >/dev/null | sed -n "s/\/\(.*\.[hc]\).*$1.*'\(.*\)'.*/\1:\2/p"); do
            fields=(${file_missing_pair//:/ })
            source_file=${fields[0]}
            missing_func=${fields[1]}
            # Try to find the declaration of the missing function.
            echo $(basename $source_file) \
                \#include \"$(grep -r "\b$missing_func __ARGS" | sed -n "s/.*\/\(.*\)\:.*/\1/p")\"
        # Remove duplicates
        done | sort | uniq
    }

    echo "Finding missing function prototypes..."
    list_missing_includes "implicit declaration of function"
    echo "Finding missing identifier declarations..."
    list_missing_includes "use of undeclared identifier"

Each list of required headers was added by hand in the following format:

    #include "vim.h"
    #include "*_defs.h"
    #include "filename.h"
    /* All other includes in same module here, in alphabetical order. */
    /* All includes from other modules (e.g. "os/*.h") here in alphabetical
     * order. */
2014-02-26 04:17:27 -03:00
Thomas Wienecke 82e0636e78 Delete local function strerror and USE_GETCWD define.
Both are useless after porting mch_dirname to libuv.
2014-02-25 21:24:52 -03:00
Thomas Wienecke 8437a4c972 os_unix: Port mch_FullName and mch_isFullName to libuv.
Basically just delete conditional use of fchdir, since the other called
mch_* functions are already ported to libuv.
2014-02-25 18:59:22 -03:00
jbranchaud b7d5edd5aa Rebased the following three commits onto one another:
1. Following GitHub convention by adding a CONTRIBUTING.md file.

2. Linking to the wiki page for communicating.

3. Referencing the waffle.io page for Neovim.
2014-02-25 15:59:57 -03:00
Thiago de Arruda 60280ffa10 Modify travis script to remove testing noise 2014-02-25 15:24:29 -03:00
Thomas Wienecke 1e2da25d3d os_unix: Use libuv uv_cwd instead of getcwd/getwd. 2014-02-25 14:26:21 -03:00
Rich Wareham d342257ae4 add installation as a travis test
Not only should we pass the test suite but we should also install
successfully.
2014-02-25 13:20:14 -03:00
Rich Wareham 0a15feee9d Makefile: allow configuration of CMake flags
Although CMAKE_FLAGS was already a Makefile variable, it didn't have an
empty default value meaning that extending the flags to CMake in a clean
way was difficult. Add a CMAKE_EXTRA_FLAGS variable which is appended to
the default flags.
2014-02-25 13:20:14 -03:00
Rich Wareham cf3322f8c2 Makefile: add install target
This simply calls the install target in the build directory. IMHO I
think it's looking a bit hacky having a separate Makefile target to do
this rather than using the usual CMake workflow but mine is not to
reason why... [Also, I've copied ``cd build && make ...`` although I'm
sure ``$MAKE -C build/ ...`` is probably the Right Thing (TM).]

Note that you'll have to set CMAKE_INSTALL_PREFIX on the cmake command
line to change where this installs to.
2014-02-25 13:20:14 -03:00
Rich Wareham 4961654a2a CMakeLists: add install target for nvim 2014-02-25 13:20:14 -03:00
HungMingWu ab94b36f3d add required dependency on Debian/Ubuntu system 2014-02-25 23:24:59 +08:00
Thiago de Arruda de7d5cec8e Add local.mk include in makefile
This can be used by devs that need their own custom targets
2014-02-25 11:55:36 -03:00
Jim Hester ba6273bb51 Arch linux link in TOC had the wrong indentation 2014-02-25 11:35:33 -03:00
ash-lshift fffb8991fd silence tar when getting libuv 2014-02-25 09:11:16 +00:00
Theo Belaire 98f4c55e45 Silenced wget's progress bar
This way it won't show up in travis-ci like:

    0% [                                       ] 0           --.-K/s
    100%[======================================>] 371,453     --.-K/s
2014-02-25 09:06:15 +00:00
Theo Belaire e7b0aa224a Added curl support and one test
Now it checks for the existance of curl after
failing to find wget.

Note that I ended up removing the quotes around $url
when referencing it in the call to wget, since urls can't have spaces
anyways, and the correct quoting was messy.

To test, I did

    rm -r .deps
    make clean
    make cmake
    make

And it worked.
2014-02-25 09:06:15 +00:00
Thiago de Arruda d5f74cf8bb Add missing include guard to os module 2014-02-24 22:41:39 -03:00
Thiago de Arruda c067e5580b Create new OS module
This module will contain all functions that perform OS calls such as IO,
filesystem access, etc.
2014-02-24 22:17:46 -03:00
Rich Wareham 0f438e42a8 move libuv functions to os.c and io.c module
Despite being an io library, the functions currently implemented with
libuv include some non-I/O tasks like getting the total amount of
memory.
2014-02-24 22:00:03 -03:00
Rich Wareham 65e7610655 os_unix: use libuv total memory function 2014-02-24 22:00:03 -03:00
Rich Wareham 68d8ab54a1 os_unix: switch to libuv chdir() function 2014-02-24 22:00:03 -03:00
Rich Wareham b58f079d8a os_unix: add #include for libuv 2014-02-24 22:00:03 -03:00
Diego Viola f608d2361c README.md: cosmetic fixes 2014-02-24 21:56:24 +00:00
scott-linder 9db0fc3582 Changed name of binary (vim -> nvim).
Also updated affected config files and test49.vim
2014-02-24 18:48:51 -03:00
Thiago de Arruda d29ab233a6 Add link to mailing list 2014-02-24 18:24:30 -03:00
Ashley Hewson a8cda69a73 Merge pull request #85 from jszakmeister/remove-bashisms
scripts/common.sh: remove a couple bashisms
2014-02-24 21:23:09 +00:00
Ashley Hewson eedb6a3ad7 Merge pull request #79 from jdiez17/has_neovim
Added 'neovim' to the feature list, following discussion on #44
2014-02-24 21:17:36 +00:00
Jim Hester 0ad500de58 Fix space in link 2014-02-24 14:40:00 -05:00