Browse Source

Merge pull request #117 from deathwish/improve-makefile

Improve makefile
pull/118/head
Simon Eisenmann 11 years ago
parent
commit
b31adb67bb
  1. 2
      .gitignore
  2. 68
      Makefile.am
  3. 21
      configure.ac

2
.gitignore vendored

@ -29,8 +29,6 @@ Makefile
Makefile.in Makefile.in
aclocal.m4 aclocal.m4
autom4te.cache/ autom4te.cache/
config.h
config.h.in
config.status config.status
configure configure
install-sh install-sh

68
Makefile.am

@ -21,19 +21,17 @@
AUTOMAKE_OPTIONS = -Wno-portability AUTOMAKE_OPTIONS = -Wno-portability
ACLOCAL_AMFLAGS = -I m4 ACLOCAL_AMFLAGS = -I m4
PKG := app/spreed-webrtc-server
EXENAME := spreed-webrtc-server EXENAME := spreed-webrtc-server
CONFIG_FILE ?= spreed-webrtc-server.conf CONFIG_FILE ?= spreed-webrtc-server.conf
CONFIG_PATH ?= /etc CONFIG_PATH ?= /etc
GOBUILDFLAGS ?=
GOTESTFLAGS ?=
DESTDIR ?= /
VENDOR = "$(CURDIR)/vendor"
GOPATH = "$(VENDOR):$(CURDIR)"
SYSTEM_GOPATH := /usr/share/gocode/src/
OUTPUT := $(CURDIR)/bin OUTPUT := $(CURDIR)/bin
OUTPUT_JS := $(CURDIR)/build/out OUTPUT_JS := $(CURDIR)/build/out
DESTDIR ?= /
BIN := $(DESTDIR)/usr/sbin BIN := $(DESTDIR)/usr/sbin
CONFIG_DIR := $(DESTDIR)/$(CONFIG_PATH) CONFIG_DIR := $(DESTDIR)/$(CONFIG_PATH)
SHARE := $(DESTDIR)/usr/share/spreed-webrtc-server SHARE := $(DESTDIR)/usr/share/spreed-webrtc-server
@ -46,39 +44,42 @@ DIST_BIN := $(DIST)/bin
all: build all: build
build: get binary assets build: binary assets
gopath: gopath:
@echo GOPATH=$(GOPATH) @echo GOPATH=$(GOPATH)
if READONLY_VENDOR_GOPATH
export GOPATH = $(DIST):$(CURDIR)
get: $(DIST)
ln -sf $(VENDOR_GOPATH)/src -t $(DIST)
else
export GOPATH = $(VENDOR_GOPATH):$(CURDIR)
get: get:
GOPATH=$(GOPATH) $(GO) get $(PKG) endif
$(GO) get app/...
getupdate: getupdate: vendorclean get
rm -rf vendor/*
GOPATH=$(GOPATH) $(GO) get $(PKG)
binary: binary: get
GOPATH=$(GOPATH) $(GO) build -o $(OUTPUT)/$(EXENAME) -ldflags '$(LDFLAGS)' $(PKG) $(GO) build $(GOBUILDFLAGS) -o $(OUTPUT)/$(EXENAME) -ldflags '$(LDFLAGS)' app/$(EXENAME)
binaryrace: binaryrace: GOBUILDFLAGS := $(GOBUILDFLAGS) -race
GOPATH=$(GOPATH) $(GO) build -race -o $(OUTPUT)/$(EXENAME) -ldflags '$(LDFLAGS)' $(PKG) binaryrace: binary
binaryall: binaryall: GOBUILDFLAGS := $(GOBUILDFLAGS) -a
GOPATH=$(GOPATH) $(GO) build -a -o $(OUTPUT)/$(EXENAME) -ldflags '$(LDFLAGS)' $(PKG) binaryall: binary
fmt: fmt:
GOPATH=$(GOPATH) $(GO) fmt app/... $(GO) fmt app/...
test: TESTDEPS = $(shell GOPATH=$(GOPATH) $(GO) list -f '{{.ImportPath}}{{"\n"}}{{join .Deps "\n"}}' $(PKG) | $(GREP) $(PKG))
test: get test: get
GOPATH=$(GOPATH) $(GO) test -i $(TESTDEPS) $(GO) test $(GOTESTFLAGS) app/...
GOPATH=$(GOPATH) $(GO) test -v $(TESTDEPS)
assets: javascript fonts assets: javascript fonts
releaseassets: RJSFLAGS = generateSourceMaps=false preserveLicenseComments=true releaseassets: RJSFLAGS = generateSourceMaps=false preserveLicenseComments=true
releaseassets: dist_gopath assets releaseassets: assets
fonts: fonts:
$(MKDIR_P) $(CURDIR)/static/fonts $(MKDIR_P) $(CURDIR)/static/fonts
@ -113,13 +114,9 @@ extract-i18n:
update-i18n: update-i18n:
cd $(CURDIR)/src/i18n && $(MAKE) update cd $(CURDIR)/src/i18n && $(MAKE) update
release: GOPATH = "$(DIST):$(VENDOR):$(CURDIR)"
release: LDFLAGS = -X main.version $(PACKAGE_VERSION) -X main.defaultConfig $(CONFIG_PATH)/$(CONFIG_FILE) release: LDFLAGS = -X main.version $(PACKAGE_VERSION) -X main.defaultConfig $(CONFIG_PATH)/$(CONFIG_FILE)
release: OUTPUT = $(DIST_BIN) release: OUTPUT = $(DIST_BIN)
release: dist_gopath $(DIST_BIN) binary releaseassets release: $(DIST_BIN) binary releaseassets
releasetest: GOPATH = "$(DIST):$(VENDOR):$(CURDIR)"
releasetest: dist_gopath test
install: install:
echo $(BIN) echo $(BIN)
@ -147,28 +144,25 @@ install:
$(INSTALL) -D static/js/libs/webodf.js $(SHARE)/www/static/js/libs/webodf.js $(INSTALL) -D static/js/libs/webodf.js $(SHARE)/www/static/js/libs/webodf.js
clean: clean:
GOPATH=$(GOPATH) $(GO) clean -i $(PKG) $(GO) clean -i -r app/... 2>/dev/null || true
rm -rf $(CURDIR)/pkg
rm -rf $(CURDIR)/static/fonts rm -rf $(CURDIR)/static/fonts
rm -rf $(CURDIR)/build/out rm -rf $(CURDIR)/build/out
distclean: clean distclean: clean
rm -rf $(DIST) rm -rf $(DIST)
pristine: distclean vendorclean:
rm -f server.conf
rm -rf vendor/* rm -rf vendor/*
$(DIST_SRC): pristine: distclean vendorclean
rm -f server.conf
$(DIST):
$(MKDIR_P) $@ $(MKDIR_P) $@
$(DIST_BIN): $(DIST_BIN):
$(MKDIR_P) $@ $(MKDIR_P) $@
dist_gopath: $(DIST_SRC)
$(FIND) $(SYSTEM_GOPATH) -mindepth 1 -maxdepth 1 -type d \
-exec ln -sf {} $(DIST_SRC) \;
tarball: TARPATH = $(DIST)/$(PACKAGE_NAME)-$(PACKAGE_VERSION) tarball: TARPATH = $(DIST)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
tarball: BIN = $(TARPATH)/loader tarball: BIN = $(TARPATH)/loader
tarball: CONFIG_DIR = $(TARPATH)/loader tarball: CONFIG_DIR = $(TARPATH)/loader
@ -178,4 +172,4 @@ tarball: distclean release install
echo -n $(PACKAGE_VERSION) > $(TARPATH)/version.txt echo -n $(PACKAGE_VERSION) > $(TARPATH)/version.txt
tar czf $(DIST)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)_$(BUILD_OS)_$(BUILD_ARCH).tar.gz -C $(DIST) $(PACKAGE_NAME)-$(PACKAGE_VERSION) tar czf $(DIST)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)_$(BUILD_OS)_$(BUILD_ARCH).tar.gz -C $(DIST) $(PACKAGE_NAME)-$(PACKAGE_VERSION)
.PHONY: clean distclean pristine get getupdate build javascript fonts styles release releasetest dist_gopath install gopath binary binaryrace binaryall tarball assets .PHONY: clean distclean vendorclean pristine get getupdate build javascript fonts styles release releasetest dist_gopath install gopath binary binaryrace binaryall tarball assets

21
configure.ac

@ -39,7 +39,6 @@ NODEJS_VERSION_STYLES_MIN=0.10.0
SASS_VERSION_MIN=3.3.0 SASS_VERSION_MIN=3.3.0
AC_CONFIG_SRCDIR([src/app/spreed-webrtc-server/main.go]) AC_CONFIG_SRCDIR([src/app/spreed-webrtc-server/main.go])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_MACRO_DIR([m4])
dnl required version of automake dnl required version of automake
@ -54,14 +53,7 @@ AC_PROG_GREP
AC_PROG_SED AC_PROG_SED
AC_PROG_AWK AC_PROG_AWK
AC_SUBST(MKDIR_P)
AC_SUBST(INSTALL)
AC_SUBST(GREP)
AC_SUBST(SED)
AC_SUBST(AWK)
AC_PATH_PROGS([FIND],[find]) AC_PATH_PROGS([FIND],[find])
AC_SUBST(FIND)
AC_PATH_PROG([JSHINT],jshint, [], [$PWD/node_modules/.bin$PATH_SEPARATOR$PATH]) AC_PATH_PROG([JSHINT],jshint, [], [$PWD/node_modules/.bin$PATH_SEPARATOR$PATH])
if test x"${JSHINT}" != x"" ; then if test x"${JSHINT}" != x"" ; then
@ -76,7 +68,6 @@ if test x"${PYTHON}" != x"" ; then
PYTHON_VERSION=`$PYTHON --version 2>&1 | $SED 's/^Python //'` PYTHON_VERSION=`$PYTHON --version 2>&1 | $SED 's/^Python //'`
AC_MSG_RESULT([$PYTHON_VERSION]) AC_MSG_RESULT([$PYTHON_VERSION])
fi fi
AC_SUBST(PYTHON)
AC_PATH_PROGS([GO],[go]) AC_PATH_PROGS([GO],[go])
if test x"${GO}" == x"" ; then if test x"${GO}" == x"" ; then
@ -88,7 +79,13 @@ GO_VERSION=`$GO version | $SED 's/^go version go//' | $SED 's/ .*//'`
AC_MSG_RESULT([$GO_VERSION]) AC_MSG_RESULT([$GO_VERSION])
AX_COMPARE_VERSION([$GO_VERSION], [lt], [$GO_VERSION_MIN], AX_COMPARE_VERSION([$GO_VERSION], [lt], [$GO_VERSION_MIN],
[AC_MSG_ERROR([Please install Go $GO_VERSION_MIN or newer before trying to build spreed-webrtc (found Go $GO_VERSION).])]) [AC_MSG_ERROR([Please install Go $GO_VERSION_MIN or newer before trying to build spreed-webrtc (found Go $GO_VERSION).])])
AC_SUBST(GO)
AC_ARG_VAR(VENDOR_GOPATH, [Path used to locate third-party Go code, defaults to $PWD/vendor])
AC_MSG_CHECKING([third-party Go source code path])
AM_CONDITIONAL([DEFAULT_VENDOR_GOPATH], [test x"${VENDOR_GOPATH}" == x""])
AM_CONDITIONAL([READONLY_VENDOR_GOPATH], [test -n "${VENDOR_GOPATH}" -a ! -w "${VENDOR_GOPATH}"])
AM_COND_IF(DEFAULT_VENDOR_GOPATH, [AC_SUBST(VENDOR_GOPATH, $PWD/vendor)])
AC_MSG_RESULT([$VENDOR_GOPATH])
AC_PATH_PROGS([NODEJS],[nodejs node]) AC_PATH_PROGS([NODEJS],[nodejs node])
if test x"${NODEJS}" == x"" ; then if test x"${NODEJS}" == x"" ; then
@ -103,7 +100,6 @@ else
[AC_MSG_WARN([Please install node.js $NODEJS_VERSION_STYLES_MIN or newer before trying to build styles (found node.js $NODEJS_VERSION).]) [AC_MSG_WARN([Please install node.js $NODEJS_VERSION_STYLES_MIN or newer before trying to build styles (found node.js $NODEJS_VERSION).])
NODEJS_SUPPORT_STYLES=no],[NODEJS_SUPPORT_STYLES=yes]) NODEJS_SUPPORT_STYLES=no],[NODEJS_SUPPORT_STYLES=yes])
fi fi
AC_SUBST(NODEJS)
AC_SUBST(NODEJS_SUPPORT_STYLES) AC_SUBST(NODEJS_SUPPORT_STYLES)
AC_PATH_PROGS([COMPASS],[compass]) AC_PATH_PROGS([COMPASS],[compass])
@ -114,7 +110,6 @@ else
COMPASS_VERSION=`$COMPASS --version | $AWK 'NR==1' | $SED 's/^Compass //' | $SED 's/ .*//'` COMPASS_VERSION=`$COMPASS --version | $AWK 'NR==1' | $SED 's/^Compass //' | $SED 's/ .*//'`
AC_MSG_RESULT([$COMPASS_VERSION]) AC_MSG_RESULT([$COMPASS_VERSION])
fi fi
AC_SUBST(COMPASS)
AC_PATH_PROGS([SASS],[sass]) AC_PATH_PROGS([SASS],[sass])
if test x"${SASS}" == x"" ; then if test x"${SASS}" == x"" ; then
@ -127,7 +122,6 @@ else
[AC_MSG_WARN([Please install compass with sass $SASS_VERSION_MIN or newer before trying to build styles (found sass $SASS_VERSION).]) [AC_MSG_WARN([Please install compass with sass $SASS_VERSION_MIN or newer before trying to build styles (found sass $SASS_VERSION).])
SASS_SUPPORT_STYLES=no],[SASS_SUPPORT_STYLES=yes]) SASS_SUPPORT_STYLES=no],[SASS_SUPPORT_STYLES=yes])
fi fi
AC_SUBST(SASS)
if test x"${SASS}" != x"" ; then if test x"${SASS}" != x"" ; then
AC_MSG_CHECKING([for compass support in sass]) AC_MSG_CHECKING([for compass support in sass])
@ -164,7 +158,6 @@ else
PYBABEL_VERSION=`$PYBABEL --version | $SED 's/^pybabel //'` PYBABEL_VERSION=`$PYBABEL --version | $SED 's/^pybabel //'`
AC_MSG_RESULT([$PYBABEL_VERSION]) AC_MSG_RESULT([$PYBABEL_VERSION])
fi fi
AC_SUBST(PYBABEL)
AC_PATH_PROGS([NPM],[npm]) AC_PATH_PROGS([NPM],[npm])
NODEJS_SUPPORT_PO2JSON=no NODEJS_SUPPORT_PO2JSON=no

Loading…
Cancel
Save