couchdb-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From woh...@apache.org
Subject couchdb commit: updated refs/heads/master to 47a65c0
Date Fri, 15 Jul 2016 22:12:56 GMT
Repository: couchdb
Updated Branches:
  refs/heads/master 212ac60e5 -> 47a65c0c7


Add Windows Makefile, bump docs repo to match


Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/47a65c0c
Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/47a65c0c
Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/47a65c0c

Branch: refs/heads/master
Commit: 47a65c0c7b745c433c6c66720c46d7e0ec7e7a64
Parents: 212ac60
Author: Joan Touzet <wohali@atypical.net>
Authored: Fri Jul 15 18:12:47 2016 -0400
Committer: Joan Touzet <wohali@atypical.net>
Committed: Fri Jul 15 18:12:47 2016 -0400

----------------------------------------------------------------------
 Makefile.win | 320 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 320 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb/blob/47a65c0c/Makefile.win
----------------------------------------------------------------------
diff --git a/Makefile.win b/Makefile.win
new file mode 100644
index 0000000..bf41d57
--- /dev/null
+++ b/Makefile.win
@@ -0,0 +1,320 @@
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+#   http:\\www.apache.org\licenses\LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+include version.mk
+
+REBAR?=$(shell where rebar.cmd)
+IN_RELEASE = $(shell if not exist .git echo true)
+ifeq ($(IN_RELEASE), true)
+COUCHDB_VERSION_SUFFIX = -$(shell git rev-parse --short --verify HEAD)
+else
+COUCHDB_VERSION_SUFFIX = 
+endif
+COUCHDB_VERSION = $(vsn_major).$(vsn_minor).$(vsn_patch)$(COUCHDB_VERSION_SUFFIX)
+
+DESTDIR=
+
+# Rebar options
+apps=
+skip_deps=folsom,lager,meck,mochiweb,proper,snappy
+suites=
+tests=
+
+# no sed on Windows, hard code since apps\suites\tests are empty
+EUNIT_OPTS=skip_deps=$(skip_deps)
+DIALYZE_OPTS=skip_deps=$(skip_deps)
+
+################################################################################
+# Main commands
+################################################################################
+
+
+.PHONY: all
+# target: all - Build everything
+all: couch fauxton docs
+
+
+################################################################################
+# Building
+################################################################################
+
+
+.PHONY: couch
+# target: couch - Build CouchDB core
+couch: config.erl
+	@set COUCHDB_VERSION=$(COUCHDB_VERSION) && $(REBAR) compile
+	@copy src\couch\priv\couchjs.exe bin
+
+
+.PHONY: docs
+# target: docs - Build documentation
+ifeq ($(IN_RELEASE), true)
+docs: share\docs\html
+else
+docs: src\docs\build
+endif
+
+.PHONY: fauxton
+# target: fauxton - Build Fauxton web UI
+fauxton: share\www
+
+
+################################################################################
+# Testing
+################################################################################
+
+
+.PHONY: check
+# target: check - Test everything
+check: all
+	@$(MAKE) eunit
+	@$(MAKE) javascript
+
+
+.PHONY: eunit
+# target: eunit - Run EUnit tests, use EUNIT_OPTS to provide custom options
+eunit: export ERL_AFLAGS = $(shell echo "-config rel/files/eunit.config")
+eunit: export BUILDDIR = $(shell echo %cd%)
+eunit:
+	@$(REBAR) setup_eunit 2> nul
+	@$(REBAR) -r eunit $(EUNIT_OPTS)
+
+
+.PHONY: javascript
+# target: javascript - Run JavaScript test suites or specific ones defined by suites option
+javascript:
+	-@mkdir share\www\script\test
+ifeq ($(IN_RELEASE), true)
+	@copy test\javascript\tests\lorem*.txt share\www\script\test
+else
+	-@mkdir src\fauxton\dist\release\test
+	@copy test\javascript\tests\lorem*.txt src\fauxton\dist\release\test
+endif
+	-@rmdir /s/q dev\lib
+	@python dev\run -n 1 -q --with-admin-party-please python test\javascript\run $(suites)
+
+
+.PHONY: check-qs
+# target: check-qs - Run query server tests (ruby and rspec required!)
+check-qs:
+	@QS_LANG=js rspec test\view_server\query_server_spec.rb
+
+
+################################################################################
+# Developing
+################################################################################
+
+
+.PHONY: build-plt
+# target: build-plt - Build project-specific PLT
+build-plt:
+	@$(REBAR) -r build-plt $(DIALYZE_OPTS)
+
+
+.PHONY: check-plt
+# target: check-plt - Check the PLT for consistency and rebuild it if it is not up-to-date
+check-plt:
+	@$(REBAR) -r check-plt $(DIALYZE_OPTS)
+
+
+.PHONY: dialyze
+# target: dialyze - Analyze the code for discrepancies
+dialyze: .rebar
+	@$(REBAR) -r dialyze $(DIALYZE_OPTS)
+
+
+.PHONY: docker-image
+# target: docker-image - Build Docker image
+docker-image:
+	@docker build --rm -t couchdb\dev-cluster .
+
+
+.PHONY: docker-start
+# target: docker-start - Start CouchDB in Docker container
+docker-start:
+	@docker run -d -P -t couchdb\dev-cluster > .docker-id
+
+
+.PHONY: docker-stop
+# target: docker-stop - Stop Docker container
+docker-stop:
+	@docker stop `cat .docker-id`
+
+
+.PHONY: introspect
+# target: introspect - Check for commits difference between rebar.config and repository
+introspect:
+	@$(REBAR) -r update-deps
+	@escript .\introspect
+
+
+################################################################################
+# Distributing
+################################################################################
+
+
+.PHONY: dist
+# target: dist - Make release tarball
+dist: all
+	@.\build-aux\couchdb-build-release.sh $(COUCHDB_VERSION)
+
+	@copy -r share\www apache-couchdb-$(COUCHDB_VERSION)\share
+	@mkdir apache-couchdb-$(COUCHDB_VERSION)\share\docs\html
+	@copy -r src\docs\build\html apache-couchdb-$(COUCHDB_VERSION)\share\docs
+	@mkdir apache-couchdb-$(COUCHDB_VERSION)\share\docs\pdf
+	@copy src\docs\build\latex\CouchDB.pdf apache-couchdb-$(COUCHDB_VERSION)\share\docs\pdf
+
+	@mkdir apache-couchdb-$(COUCHDB_VERSION)\share\docs\man
+	@copy src\docs\build\man\apachecouchdb.1 apache-couchdb-$(COUCHDB_VERSION)\share\docs\man
+	@mkdir apache-couchdb-$(COUCHDB_VERSION)\share\docs\info
+	@copy src\docs\build\texinfo\CouchDB.info apache-couchdb-$(COUCHDB_VERSION)\share\docs\info
+
+	@tar czf apache-couchdb-$(COUCHDB_VERSION).tar.gz apache-couchdb-$(COUCHDB_VERSION)
+	@echo "Done: apache-couchdb-$(COUCHDB_VERSION).tar.gz"
+
+
+.PHONY: release
+# target: release - Create an Erlang release including CouchDB!
+-include install.mk
+release: all
+	@echo "Installing CouchDB into rel\couchdb\ ..."
+	-@rmdir /s/q rel\couchdb
+	@$(REBAR) generate > \dev\null 2>&1 # make full erlang release
+
+ifeq ($(with_fauxton), 1)
+	-@mkdir rel\couchdb\share
+	@robocopy /E share\www rel\couchdb\share
+endif
+
+ifeq ($(with_docs), 1)
+ifeq ($(IN_RELEASE), true)
+	-@mkdir rel\couchdb\share\www\docs
+	-@mkdir rel\couchdb\share\docs
+	@robocopy /E share\docs\html\* rel\couchdb\share\www\docs
+	@copy share\docs\pdf\CouchDB.pdf rel\couchdb\share\docs\CouchDB.pdf
+	@copy share\docs\man\apachecouchdb.1 rel\couchdb\share\docs\couchdb.1
+	@copy share\docs\info\CouchDB.info rel\couchdb\share\docs\CouchDB.info
+else
+	-@mkdir rel\couchdb\share\docs
+	@robocopy /E src\docs\build\html\ rel\couchdb\share\www\docs
+	@copy src\docs\build\latex\CouchDB.pdf rel\couchdb\share\docs\CouchDB.pdf
+	@copy src\docs\build\man\apachecouchdb.1 rel\couchdb\share\docs\couchdb.1
+	@copy src\docs\build\texinfo\CouchDB.info rel\couchdb\share\docs\CouchDB.info
+endif
+endif
+
+	@echo "... done"
+	@echo
+	@echo "    You can now copy the rel\couchdb directory anywhere on your system."
+	@echo "    Start CouchDB with .\bin\couchdb from within that directory."
+	@echo
+
+.PHONY: install
+# target: install- install CouchDB :)
+install:
+	@echo
+	@echo "Notice: There is no 'make install' command for CouchDB 2.0 yet."
+	@echo
+	@echo "    To install CouchDB into your system, copy the rel\couchdb"
+	@echo "    to your desired installation location. For example:"
+	@echo "    robocopy /E rel\couchdb \usr\local\lib"
+	@echo
+
+################################################################################
+# Cleaning
+################################################################################
+
+
+.PHONY: clean
+# target: clean - Remove build artifacts
+clean:
+	@$(REBAR) -r clean
+	-@rmdir /s/q .rebar
+	-@del /f/q bin\couchjs.exe
+	-@rmdir /s/q src\*\ebin
+	-@rmdir /s/q src\*\.rebar
+	-@del /f/q/s src\*.dll
+	-@del /f/q src\couch\priv\*.exe
+	-@del /f/q share\server\main.js share\server\main-coffee.js
+	-@rmdir /s/q tmp 
+	-@rmdir /s/q dev\data
+	-@rmdir /s/q dev\lib
+	-@rmdir /s/q dev\logs
+	-@del /f/q src\couch\priv\couch_js\config.h
+	-@del /f/q dev\boot_node.beam dev\pbkdf2.pyc log\crash.log
+
+
+.PHONY: distclean
+# target: distclean - Remove build and release artifacts
+distclean: clean
+	-@del install.mk
+	-@del config.erl
+	-@del rel\couchdb.config
+ifneq ($(IN_RELEASE), true)
+# when we are in a release, don’t delete the
+# copied sources, generated docs, or fauxton
+	-@rmdir /s/q rel\couchdb
+	-@rmdir /s/q share\www
+	-@rmdir /s/q src\docs
+endif
+
+
+.PHONY: devclean
+# target: devclean - Remove dev cluster artifacts
+devclean:
+	-@rmdir /s/q dev\lib\node1\data
+	-@rmdir /s/q dev\lib\node2\data
+	-@rmdir /s/q dev\lib\node3\data
+
+
+.PHONY: uninstall
+# target: uninstall - Uninstall CouchDB :-(
+uninstall:
+	-@rmdir /s/q $(DESTDIR)\$(install_dir)
+	-@del $(DESTDIR)\$(bin_dir)\couchdb
+	-@rmdir /s/q $(DESTDIR)\$(libexec_dir)
+	-@rmdir /s/q $(DESTDIR)\$(sysconf_dir)
+	-@rmdir /s/q $(DESTDIR)\$(data_dir)
+	-@rmdir /s/q $(DESTDIR)\$(doc_dir)
+	-@rmdir /s/q $(DESTDIR)\$(html_dir)
+	-@rmdir /s/q $(DESTDIR)\$(pdf_dir)
+	-@rmdir /s/q $(DESTDIR)\$(man_dir)
+	-@rmdir /s/q $(DESTDIR)\$(info_dir)
+
+
+################################################################################
+# Misc
+################################################################################
+
+
+.rebar: build-plt
+
+config.erl:
+	@echo Apache CouchDB has not been configured.
+	@echo Try "powershell -ExecutionPolicy Bypass .\configure.ps1 -?" for help.
+	@echo You probably want "powershell -ExecutionPolicy Bypass .\configure.ps1 -WithCurl".
+	@echo.
+	@false
+
+
+src\docs\build:
+	@echo Building docs...
+ifeq ($(with_docs), 1)
+	@cd src\docs && make.bat html && make.bat texinfo && make.bat man
+endif
+
+
+share\www:
+ifeq ($(with_fauxton), 1)
+	@echo "Building Fauxton"
+	@cd src\fauxton && npm install --production && .\node_modules\grunt-cli\bin\grunt
couchdb
+endif


Mime
View raw message