We are evaluating and setting up Continuous Integration for our PHP project. Each of the Continuous Integration tools has their own proprietary "build language" which will run many commands and check the return status of these commands.

Here is an example of a `.travis.yml` configuration:

```
language: php

php:
  - "5.3"
  - "5.4"
  - "5.5"

script: phpunit test

notifications:
  email:
    - sourcespeak@phor.net

```

A Jenkins configuration will be in XML and is too long to paste here.

Here is an example of a `circle.yml` configuration:

```
dependencies:
  override:
    - bundle install:
        timeout: 240
        environment:
          foo: bar
          foo2: bar2
        pwd:
          test_dir

```

**My question is: what is the benefit of using all these popular, proprietary configurations languages for CI instead of using a Makefile to set up your test environment and have whatever CI server just run `make test`?**