2015-09-15 22:38:54 +03:00
.PHONY : all
TRAEFIK_ENVS := \
-e OS_ARCH_ARG \
-e OS_PLATFORM_ARG \
2015-11-05 17:14:25 +03:00
-e TESTFLAGS \
2016-02-19 14:58:06 +03:00
-e VERSION
2016-01-29 22:34:17 +03:00
SRCS = $( shell git ls-files '*.go' | grep -v '^external/' )
2015-09-27 16:56:53 +03:00
BIND_DIR := "dist"
TRAEFIK_MOUNT := -v " $( CURDIR) / $( BIND_DIR) :/go/src/github.com/emilevauge/traefik/ $( BIND_DIR) "
2015-09-15 22:38:54 +03:00
GIT_BRANCH := $( shell git rev-parse --abbrev-ref HEAD 2>/dev/null)
TRAEFIK_DEV_IMAGE := traefik-dev$( if $( GIT_BRANCH) ,:$( GIT_BRANCH) )
2015-09-16 19:07:58 +03:00
REPONAME := $( shell echo $( REPO) | tr '[:upper:]' '[:lower:]' )
TRAEFIK_IMAGE := $( if $( REPONAME) ,$( REPONAME) ,"emilevauge/traefik" )
2015-09-27 16:56:53 +03:00
INTEGRATION_OPTS := $( if $( MAKE_DOCKER_HOST) ,-e " DOCKER_HOST= $( MAKE_DOCKER_HOST) " , -v "/var/run/docker.sock:/var/run/docker.sock" )
2015-09-15 22:38:54 +03:00
2016-02-19 14:58:06 +03:00
DOCKER_RUN_TRAEFIK := docker run $( INTEGRATION_OPTS) -it $( TRAEFIK_ENVS) $( TRAEFIK_MOUNT) " $( TRAEFIK_DEV_IMAGE) "
2015-09-15 22:38:54 +03:00
2015-09-16 19:07:58 +03:00
print-% : ; @echo $*=$( $ *)
2015-09-15 22:38:54 +03:00
default : binary
2016-02-13 18:01:29 +03:00
all : generate -webui build
2015-10-30 10:55:08 +03:00
$( DOCKER_RUN_TRAEFIK) ./script/make.sh
2016-02-13 18:01:29 +03:00
binary : generate -webui build
2015-09-15 22:38:54 +03:00
$( DOCKER_RUN_TRAEFIK) ./script/make.sh generate binary
2016-02-13 18:01:29 +03:00
crossbinary : generate -webui build
2015-09-27 16:56:53 +03:00
$( DOCKER_RUN_TRAEFIK) ./script/make.sh generate crossbinary
2015-09-15 22:38:54 +03:00
test : build
2015-09-27 16:56:53 +03:00
$( DOCKER_RUN_TRAEFIK) ./script/make.sh generate test-unit binary test-integration
2015-09-15 22:38:54 +03:00
test-unit : build
$( DOCKER_RUN_TRAEFIK) ./script/make.sh generate test-unit
test-integration : build
2015-09-27 16:56:53 +03:00
$( DOCKER_RUN_TRAEFIK) ./script/make.sh generate test-integration
2015-09-15 22:38:54 +03:00
validate : build
2015-11-06 20:11:57 +03:00
$( DOCKER_RUN_TRAEFIK) ./script/make.sh validate-gofmt validate-govet validate-golint
2015-09-15 22:38:54 +03:00
validate-gofmt : build
$( DOCKER_RUN_TRAEFIK) ./script/make.sh validate-gofmt
2015-09-23 22:15:21 +03:00
validate-govet : build
$( DOCKER_RUN_TRAEFIK) ./script/make.sh validate-govet
2015-11-06 20:11:57 +03:00
validate-golint : build
$( DOCKER_RUN_TRAEFIK) ./script/make.sh validate-golint
2015-09-15 22:38:54 +03:00
build : dist
docker build -t " $( TRAEFIK_DEV_IMAGE) " -f build.Dockerfile .
2016-01-26 00:23:56 +03:00
build-webui :
docker build -t traefik-webui -f webui/Dockerfile webui
2015-10-01 13:04:25 +03:00
build-no-cache : dist
docker build --no-cache -t " $( TRAEFIK_DEV_IMAGE) " -f build.Dockerfile .
2015-09-22 12:29:41 +03:00
shell : build
$( DOCKER_RUN_TRAEFIK) /bin/bash
2015-09-15 22:38:54 +03:00
image : build
docker build -t $( TRAEFIK_IMAGE) .
dist :
mkdir dist
2015-09-19 14:02:59 +03:00
run-dev :
2015-09-24 12:39:18 +03:00
go generate
2015-09-19 14:02:59 +03:00
go build
./traefik
2016-01-21 00:45:51 +03:00
2016-02-13 18:01:29 +03:00
generate-webui : build -webui
if [ ! -d "static" ] ; then \
mkdir -p static; \
docker run --rm -v " $$ PWD/static " :'/src/static' traefik-webui gulp; \
echo 'For more informations show `webui/readme.md`' > $$ PWD/static/DONT-EDIT-FILES-IN-THIS-DIRECTORY.md; \
fi
2016-01-29 22:34:17 +03:00
lint :
$( foreach file,$( SRCS) ,golint $( file) || exit; )
fmt :
2016-02-13 18:01:29 +03:00
gofmt -s -l -w $( SRCS)