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 <woh...@atypical.net>
Authored: Fri Jul 15 18:12:47 2016 -0400
Committer: Joan Touzet <woh...@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

Reply via email to