blob: b55b59050c6bd30b59ce18463988b617e138c57d [file] [log] [blame]
## 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.
couchlibdir = $(localerlanglibdir)/couch-$(version)
couchprivdir = $(couchlibdir)/priv
couchprivlibdir = $(couchlibdir)/priv/lib
if HELP2MAN
dist_man1_MANS = couchjs.1
endif
EXTRA_DIST = \
spawnkillable/couchspawnkillable.sh \
stat_descriptions.cfg.in \
couch_js/sm170.c \
couch_js/sm180.c \
couch_js/sm185.c
CLEANFILES = $(dist_man1_MANS) stat_descriptions.cfg
ICU_LOCAL_FLAGS = $(ICU_LOCAL_CFLAGS) $(ICU_LOCAL_LDFLAGS)
if WINDOWS
ICU_LOCAL_LIBS=-licuuc -licudt -licuin
else
ICU_LOCAL_LIBS=-licuuc -licudata -licui18n
endif
couchprivlib_LTLIBRARIES = couch_icu_driver.la
couch_icu_driver_la_SOURCES = icu_driver/couch_icu_driver.c
couch_icu_driver_la_LDFLAGS = -module -avoid-version $(ICU_LOCAL_FLAGS)
couch_icu_driver_la_CFLAGS = $(ICU_LOCAL_FLAGS)
couch_icu_driver_la_LIBADD = $(ICU_LOCAL_LIBS)
if WINDOWS
couch_icu_driver_la_LDFLAGS += -no-undefined
endif
COUCHJS_SRCS = \
couch_js/help.h \
couch_js/http.c \
couch_js/http.h \
couch_js/main.c \
couch_js/utf8.c \
couch_js/utf8.h \
couch_js/util.h \
couch_js/util.c
locallibbin_PROGRAMS = couchjs
couchjs_SOURCES = $(COUCHJS_SRCS)
couchjs_LDFLAGS = $(CURL_LDFLAGS)
couchjs_CFLAGS = -g -Wall -Werror -D_BSD_SOURCE $(CURL_CFLAGS)
couchjs_LDADD = $(CURL_LDFLAGS) @JSLIB@
couchpriv_DATA = stat_descriptions.cfg
couchpriv_PROGRAMS = couchspawnkillable
HELP2MAN_OPTION=--no-info --help-option="-h" --version-option="-V"
couchjs.1: couchjs
touch $@
if test -x "$(HELP2MAN_EXECUTABLE)"; then \
$(HELP2MAN_EXECUTABLE) $(HELP2MAN_OPTION) \
--name="$(package_name) JavaScript interpreter" ./couchjs --output $@; \
fi
%.cfg: %.cfg.in
cp $< $@
if WINDOWS
couchspawnkillable_SOURCES = spawnkillable/couchspawnkillable_win.c
endif
if !WINDOWS
couchspawnkillable: spawnkillable/couchspawnkillable.sh
cp $< $@
chmod +x $@
endif
# libtool and automake have defeated markh. For each of our executables
# we end up with 2 copies - one directly in the 'target' folder (eg, 'priv')
# and another - the correct one - in .libs. The former doesn't work but is
# what gets installed for 'couchspawnkillable' - but the correct one for
# couchjs.exe *does* get copied. *shrug* So just clobber it with the
# correct one as the last step. See bug COUCHDB-439
install-data-hook:
if test -f "$(DESTDIR)$(couchprivlibdir)/couch_icu_driver"; then \
rm -f "$(DESTDIR)$(couchprivlibdir)/couch_icu_driver.so"; \
cd "$(DESTDIR)$(couchprivlibdir)" && \
$(LN_S) couch_icu_driver couch_icu_driver.so; \
fi
if WINDOWS
$(INSTALL) $(ICU_LOCAL_BIN)/icuuc44.dll $(bindir)
$(INSTALL) $(ICU_LOCAL_BIN)/icudt44.dll $(bindir)
$(INSTALL) $(ICU_LOCAL_BIN)/icuin44.dll $(bindir)
$(INSTALL) $(JS_LIB_BINARY) $(bindir)
$(INSTALL) .libs/couchspawnkillable.exe \
"$(DESTDIR)$(couchprivdir)/couchspawnkillable.exe"
endif
uninstall-local:
if test -f "$(DESTDIR)$(couchprivlibdir)/couch_erl_driver"; then \
rm -f "$(DESTDIR)$(couchprivlibdir)/couch_erl_driver.so"; \
fi