summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Lehnardt <jan@apache.org>2008-10-23 21:41:37 +0000
committerJan Lehnardt <jan@apache.org>2008-10-23 21:41:37 +0000
commitefe07f99d52d1c5979340e4f79a80abf19b1c710 (patch)
tree7b3ef0904cfaa3b16c4acde9c077ac13d38f5788
parentf98d83669bcea9f119e70457cfcc2d765f917857 (diff)
Add `make dev` target. Use `./utils/run` to launch CouchDB from the source tree and without `make install`. Useful for development. Patch my Hunter Morris, thanks! Closes COUCHDB-114.
git-svn-id: https://svn.apache.org/repos/asf/incubator/couchdb/trunk@707480 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--Makefile.am11
-rw-r--r--bin/Makefile.am19
-rw-r--r--bin/couchdb.tpl.in8
-rw-r--r--configure.ac1
-rw-r--r--etc/couchdb/Makefile.am15
-rw-r--r--etc/couchdb/local_dev.ini26
-rw-r--r--utils/Makefile.am41
7 files changed, 113 insertions, 8 deletions
diff --git a/Makefile.am b/Makefile.am
index 744424f7..3898295b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -10,7 +10,7 @@
## License for the specific language governing permissions and limitations
## under the License.
-SUBDIRS = bin etc src/couchdb src/mochiweb share test var
+SUBDIRS = bin etc src/couchdb src/mochiweb share test var utils
localdoc_DATA = AUTHORS.gz BUGS.gz CHANGES.gz NEWS.gz README.gz THANKS.gz
@@ -36,6 +36,14 @@ README.gz: $(top_srcdir)/README
THANKS.gz: $(top_srcdir)/THANKS
-gzip -9 < $< > $@
+dev: all
+ @echo "This command is intended for developers to use;"
+ @echo "it creates development ini files as well as a"
+ @echo "$(top_srcdir)/tmp structure for development runtime files"
+ mkdir -p $(top_srcdir)/tmp/lib
+ mkdir -p $(top_srcdir)/tmp/log
+ mkdir -p $(top_srcdir)/tmp/run
+
.PHONY: local-clean
local-clean: maintainer-clean
@echo "This command is intended for maintainers to use;"
@@ -49,6 +57,7 @@ local-clean: maintainer-clean
rm -f $(top_srcdir)/*.tar.gz.*
rm -fr $(top_srcdir)/build-aux
rm -fr $(top_srcdir)/m4
+ rm -fr $(top_srcdir)/tmp
find $(top_srcdir) -name Makefile.in -exec rm {} \;
.PHONY: distsign
diff --git a/bin/Makefile.am b/bin/Makefile.am
index f0563f71..e03dfa0d 100644
--- a/bin/Makefile.am
+++ b/bin/Makefile.am
@@ -11,12 +11,13 @@
## under the License.
bin_SCRIPTS = couchdb couchjs
+noinst_SCRIPTS = couchjs_dev
if HELP2MAN
dist_man1_MANS = couchdb.1 couchjs.1
endif
-CLEANFILES = $(bin_SCRIPTS) $(dist_man1_MANS)
+CLEANFILES = $(bin_SCRIPTS) $(dist_man1_MANS) $(noinst_SCRIPTS)
transform = @program_transform_name@
couchdb_command_name = `echo couchdb | sed '$(transform)'`
@@ -26,8 +27,11 @@ couchdb: couchdb.tpl
sed -e "s|%ERL%|$(ERL)|g" \
-e "s|%ICU_CONFIG%|$(ICU_CONFIG)|g" \
-e "s|%bindir%|@bindir@|g" \
- -e "s|%localerlangbindir%|@localerlangbindir@|g" \
-e "s|%localerlanglibdir%|@localerlanglibdir@|g" \
+ -e "s|%mochiwebebindir%|couch-@version@/ebin|g" \
+ -e "s|%couchdbebindir%|mochiweb-r82/ebin|g" \
+ -e "s|%defaultini%|default.ini|g" \
+ -e "s|%localini%|local.ini|g" \
-e "s|%localconfdir%|@localconfdir@|g" \
-e "s|%localstatelogdir%|@localstatelogdir@|g" \
-e "s|%localstatelibdir%|@localstatelibdir@|g" \
@@ -52,6 +56,17 @@ couchjs: couchjs.tpl
$@ < $<
chmod +x $@
+couchjs_dev: couchjs.tpl
+ sed -e "s|%locallibbindir%|$(abs_top_srcdir)/src/couchdb|g" \
+ -e "s|%bug_uri%|@bug_uri@|g" \
+ -e "s|%package_author_address%|@package_author_address@|g" \
+ -e "s|%package_author_name%|@package_author_name@|g" \
+ -e "s|%package_name%|@package_name@|g" \
+ -e "s|%version%|@version@|g" \
+ -e "s|%couchjs_command_name%|$(couchjs_command_name)|g" > \
+ $@ < $<
+ chmod +x $@
+
HELP2MAN_OPTION=--no-info --help-option="-h" --version-option="-V"
# XXX: Because the scripts are made at build time for the user we need to
diff --git a/bin/couchdb.tpl.in b/bin/couchdb.tpl.in
index 5062fdc2..c769bd33 100644
--- a/bin/couchdb.tpl.in
+++ b/bin/couchdb.tpl.in
@@ -23,8 +23,8 @@ RECURSED_BOOLEAN=false
RESPAWN_TIMEOUT=0
-DEFAULT_INI_FILE=%localconfdir%/default.ini
-LOCAL_INI_FILE=%localconfdir%/local.ini
+DEFAULT_INI_FILE=%localconfdir%/%defaultini%
+LOCAL_INI_FILE=%localconfdir%/%localini%
PID_FILE=%localstatedir%/run/couchdb.pid
@@ -181,8 +181,8 @@ start_couchdb () {
done
command="`%ICU_CONFIG% --invoke` \
%ERL% $interactive_option -smp auto -sasl errlog_type error +K true \
- -pa %localerlanglibdir%/couch-%version%/ebin \
- %localerlanglibdir%/mochiweb-r82/ebin \
+ -pa %localerlanglibdir%/%couchdbebindir% \
+ %localerlanglibdir%/%mochiwebebindir% \
-eval \"application:load(inets)\" \
-eval \"application:load(crypto)\" \
-eval \"application:load(couch)\" \
diff --git a/configure.ac b/configure.ac
index 76cd7fb8..b637aaee 100644
--- a/configure.ac
+++ b/configure.ac
@@ -248,6 +248,7 @@ AC_CONFIG_FILES([src/couchdb/couch.app.tpl])
AC_CONFIG_FILES([src/couchdb/Makefile])
AC_CONFIG_FILES([src/mochiweb/Makefile])
AC_CONFIG_FILES([test/Makefile])
+AC_CONFIG_FILES([utils/Makefile])
AC_CONFIG_FILES([var/Makefile])
AC_OUTPUT
diff --git a/etc/couchdb/Makefile.am b/etc/couchdb/Makefile.am
index baf588ea..2910fe2f 100644
--- a/etc/couchdb/Makefile.am
+++ b/etc/couchdb/Makefile.am
@@ -11,14 +11,17 @@
## under the License.
couchprivlibdir = $(localerlanglibdir)/couch-$(version)/priv/lib
+devcouchprivlibdir = $(abs_top_srcdir)/src/couchdb/.libs
localconf_DATA = default.ini
EXTRA_DIST = local.ini
+noinst_DATA = default_dev.ini
-CLEANFILES = $(localconf_DATA)
+CLEANFILES = $(localconf_DATA) $(noinst_DATA)
transform = @program_transform_name@
couchjs_command_name = `echo couchjs | sed '$(transform)'`
+couchjs_dev_command_name = `echo couchjs_dev | sed '$(transform)'`
default.ini: default.ini.tpl
sed -e "s|%bindir%|$(bindir)|g" \
@@ -30,6 +33,16 @@ default.ini: default.ini.tpl
-e "s|%couchjs_command_name%|$(couchjs_command_name)|g" \
< $< > $@
+default_dev.ini: default.ini.tpl
+ sed -e "s|%bindir%|$(abs_top_srcdir)/bin|g" \
+ -e "s|%localconfdir%|$(abs_top_srcdir)/etc/couchdb|g" \
+ -e "s|%localdatadir%|$(abs_top_srcdir)/share|g" \
+ -e "s|%localstatelibdir%|$(abs_top_srcdir)/tmp/lib|g" \
+ -e "s|%localstatelogdir%|$(abs_top_srcdir)/tmp/log|g" \
+ -e "s|%couchprivlibdir%|$(devcouchprivlibdir)|g" \
+ -e "s|%couchjs_command_name%|$(couchjs_dev_command_name)|g" \
+ < $< > $@
+
install-data-hook:
if test ! -f "$(DESTDIR)/$(localconfdir)/local.ini"; then \
cp local.ini "$(DESTDIR)/$(localconfdir)/local.ini"; \
diff --git a/etc/couchdb/local_dev.ini b/etc/couchdb/local_dev.ini
new file mode 100644
index 00000000..4081062b
--- /dev/null
+++ b/etc/couchdb/local_dev.ini
@@ -0,0 +1,26 @@
+; CouchDB Configuration Settings
+
+; Custom settings should be made in this file. They will override settings
+; in default.ini, but unlike changes made to default.ini, this file won't be
+; overwritten on server upgrade.
+
+[couchdb]
+;max_document_size = 4294967296 ; bytes
+
+[httpd]
+;port = 5984
+;bind_address = 127.0.0.1
+
+[log]
+;level = info
+
+[update_notification]
+;unique notifier name=/full/path/to/exe -with "cmd line arg"
+
+
+
+[test]
+foo = bar
+
+[test]
+foo = bar
diff --git a/utils/Makefile.am b/utils/Makefile.am
new file mode 100644
index 00000000..8536b481
--- /dev/null
+++ b/utils/Makefile.am
@@ -0,0 +1,41 @@
+## 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.
+
+noinst_SCRIPTS = run
+
+CLEANFILES = $(noinst_SCRIPTS)
+
+transform = @program_transform_name@
+couchdb_command_name = `echo couchdb | sed '$(transform)'`
+
+run: ../bin/couchdb.tpl
+ sed -e "s|%ERL%|$(ERL)|g" \
+ -e "s|%ICU_CONFIG%|$(ICU_CONFIG)|g" \
+ -e "s|%bindir%|$(abs_top_srcdir)/bin|g" \
+ -e "s|%localerlanglibdir%|$(abs_top_srcdir)/src|g" \
+ -e "s|%mochiwebebindir%|mochiweb|g" \
+ -e "s|%couchdbebindir%|couchdb|g" \
+ -e "s|%defaultini%|default_dev.ini|g" \
+ -e "s|%localini%|local_dev.ini|g" \
+ -e "s|%localerlanglibdir%|$(abs_top_srcdir)/src|g" \
+ -e "s|%localconfdir%|$(abs_top_srcdir)/etc/couchdb|g" \
+ -e "s|%localstatelogdir%|$(abs_top_srcdir)/tmp/log|g" \
+ -e "s|%localstatelibdir%|$(abs_top_srcdir)/tmp/lib|g" \
+ -e "s|%localstatedir%|$(abs_top_srcdir)/tmp|g" \
+ -e "s|%bug_uri%|@bug_uri@|g" \
+ -e "s|%package_author_address%|@package_author_address@|g" \
+ -e "s|%package_author_name%|@package_author_name@|g" \
+ -e "s|%package_name%|@package_name@|g" \
+ -e "s|%version%|@version@|g" \
+ -e "s|%couchdb_command_name%|$(couchdb_command_name)|g" > \
+ $@ < $<
+ chmod +x $@