proper cleaning
[couchdbimport.git] / CouchProjects / Makefile
blob7b90128185c09b52fcb399b3852a58bf8a330248
1 # CouchDb Makefile
2 # (c) 2006 Jan Lehnardt <jan@php.net>
3 # This program is Free Software. See license.txt
6 UNICODE_INCLUDE_DIR ?= /usr/include/
7 ERLANG_INCLUDE_DIR ?= /usr/lib/erlang/driver
8 COUCHDB_INSTALL_DIR ?= /usr/local/couchdb
9 ERL ?= /usr/bin/erl
10 ERLC ?= /usr/bin/erlc
12 BUILD_DIR ?= ./build
13 DIST_DIR ?= ./dist
15 GCC ?= /usr/bin/gcc
16 CPP ?= /usr/bin/g++
17 INSTALL ?= /usr/bin/install
19 ANTLR_OBJ_FILES=Fabric/antlr/ANTLRUtil.o Fabric/antlr/BitSet.o Fabric/antlr/CommonHiddenStreamToken.o Fabric/antlr/MismatchedTokenException.o Fabric/antlr/RecognitionException.o Fabric/antlr/TokenStreamBasicFilter.o Fabric/antlr/ASTFactory.o Fabric/antlr/CharBuffer.o Fabric/antlr/CommonToken.o Fabric/antlr/MismatchedUnicodeCharException.o Fabric/antlr/String.o Fabric/antlr/TokenStreamHiddenTokenFilter.o Fabric/antlr/ASTNULLType.o Fabric/antlr/CharScanner.o Fabric/antlr/InputBuffer.o Fabric/antlr/NoViableAltException.o Fabric/antlr/Token.o Fabric/antlr/TokenStreamRewriteEngine.o Fabric/antlr/ASTRefCount.o Fabric/antlr/CommonAST.o Fabric/antlr/LLkParser.o Fabric/antlr/NoViableAltForCharException.o Fabric/antlr/TokenBuffer.o Fabric/antlr/TokenStreamSelector.o Fabric/antlr/BaseAST.o Fabric/antlr/CommonASTWithHiddenTokens.o Fabric/antlr/MismatchedCharException.o Fabric/antlr/Parser.o Fabric/antlr/TokenRefCount.o Fabric/antlr/TreeParser.o
21 FABRIC_OBJ_FILES=Fabric/GeneratedCode/FabricLexer.o Fabric/GeneratedCode/FabricParser.o Fabric/Fabric.o Fabric/Element.o Fabric/NewRuntimeNode.o
23 CPPFLAGS=-I./Fabric/ -I./Fabric/GeneratedCode/ -I$(UNICODE_INCLUDE_DIR) -I./Fabric/antlr/ -D_DEBUG
24 LDFLAGS=-L$(BUILD_DIR)/
26 #COUCH_DB_BEAM_FILES=$(BUILD_DIR)/couch-$(COUCHDB_VERSION)/ebin/couch_db.beam $(BUILD_DIR)/couch-$(COUCHDB_VERSION)/ebin/couch_doc.beam $(BUILD_DIR)/couch-$(COUCHDB_VERSION)/ebin/couch_file.beam $(BUILD_DIR)/couch-$(COUCHDB_VERSION)/ebin/couch_server.beam $(BUILD_DIR)/couch-$(COUCHDB_VERSION)/ebin/couch_stream.beam $(BUILD_DIR)/couch-$(COUCHDB_VERSION)/ebin/couch_util.beam $(BUILD_DIR)/couch-$(COUCHDB_VERSION)/ebin/couch_btree.beam $(BUILD_DIR)/couch-$(COUCHDB_VERSION)/ebin/couch_db_sup.beam $(BUILD_DIR)/couch-$(COUCHDB_VERSION)/ebin/couch_fabric.beam $(BUILD_DIR)/couch-$(COUCHDB_VERSION)/ebin/couch_log.beam $(BUILD_DIR)/couch-$(COUCHDB_VERSION)/ebin/couch_server_sup.beam $(BUILD_DIR)/couch-$(COUCHDB_VERSION)/ebin/couch_table_group.beam $(BUILD_DIR)/couch-$(COUCHDB_VERSION)/ebin/couch_rep.beam $(BUILD_DIR)/couch-$(COUCHDB_VERSION)/ebin/mod_couch.beam
29 install: couchdb
30 cp -R dist/common/* $(COUCHDB_INSTALL_DIR)/
31 mkdir $(COUCHDB_INSTALL_DIR)/lib $(COUCHDB_INSTALL_DIR)/bin
32 cp $(BUILD_DIR)/FabricServer $(COUCHDB_INSTALL_DIR)/bin/
33 cp dist/unix/bin/startCouchDb.sh $(COUCHDB_INSTALL_DIR)/bin/
34 cp $(BUILD_DIR)/couch_erl_driver.so $(COUCHDB_INSTALL_DIR)/lib/
35 mv $(COUCHDB_INSTALL_DIR)/couch_httpd.conf.src $(COUCHDB_INSTALL_DIR)/couch_httpd.conf
36 ./dist/unix/bin/config.sh
37 mv ./dist/unix/couch.ini $(COUCHDB_INSTALL_DIR)/
38 mv ./dist/unix/bin/couch_erl $(COUCHDB_INSTALL_DIR)/bin/couch_erl
39 chmod +x $(COUCHDB_INSTALL_DIR)/bin/
40 mkdir $(COUCHDB_INSTALL_DIR)/boot/
41 cp couch.boot $(COUCHDB_INSTALL_DIR)/boot/
42 $(ERL) -noshell -run build_couch output_full_libs $(COUCHDB_INSTALL_DIR)
44 dist: couchdb
45 cp $(BUILD_DIR)/FabricServer $(DIST_DIR)/
46 cp $(BUILD_DIR)/couch_erl_driver.so $(DIST_DIR)/
48 #couchdb
50 #couchdb: host $(BUILD_DIR)/couch_erl_driver.so $(COUCH_DB_BEAM_FILES) $(BUILD_DIR)/FabricServer $(BUILD_DIR)/couch.app
51 couchdb: host $(BUILD_DIR)/couch_erl_driver.so $(BUILD_DIR)/FabricServer build_couch.beam couch.boot
52 @echo "CouchDb has been built successfully!"
54 host:
55 ifeq ($(strip $(HOST)),)
56 @echo "Cannot determine HOST. exiting...";
57 exit 1;
58 endif
60 #$(BUILD_DIR)/couch-$(COUCHDB_VERSION)/ebin/%.beam: CouchDb/%.erl
61 # $(ERLC) -o $(BUILD_DIR)/couch-$(COUCHDB_VERSION)/ebin $<
64 $(BUILD_DIR)/couch_erl_driver.so:
65 ifeq ($(HOST),Linux)
66 $(GCC) -w -rdynamic -shared -fPIC -I$(ERLANG_INCLUDE_DIR) CouchDb/couch_erl_driver.c -L/usr/lib -o $(BUILD_DIR)/couch_erl_driver.so -licuuc -licudata -licui18n
67 endif
69 ifeq ($(HOST),Darwin)
70 $(GCC) -w -bundle -flat_namespace -undefined suppress -I$(ERLANG_INCLUDE_DIR) CouchDb/couch_erl_driver.c -L/usr/local/lib -o $(BUILD_DIR)/couch_erl_driver.so -licudata -licuuc -licui18n
71 endif
73 # $(BUILD_DIR)/couch.boot: CouchDb/couch.rel $(BUILD_DIR)/couch-$(COUCHDB_VERSION)/ebin/couch.app
74 # $(ERLC) -pa $(BUILD_DIR)/couch-$(COUCHDB_VERSION)/ebin/ -I $(BUILD_DIR)/couch-$(COUCHDB_VERSION)/ebin/ -I couch_inets/ -I $(ERLANG_LIB_DIR) -I CouchDb/ -o $(BUILD_DIR)/ CouchDb/couch.rel
75 #2>&1 > /dev/null
77 couch.boot:
78 $(ERL) -noshell -run build_couch compile_all
80 # CouchDb/couch.app CouchDb/couch.rel: build_couch.beam version
81 # $(ERL) -noshell -run build_couch compile_all
82 # $(ERL) -noshell -run build_couch make_app_rel_files
85 build_couch.beam: build_couch.erl
86 $(ERLC) build_couch.erl
88 # $(BUILD_DIR)/couch-$(COUCHDB_VERSION)/ebin/couch.app: CouchDb/couch.app
89 # cp CouchDb/couch.app $(BUILD_DIR)/couch-$(COUCHDB_VERSION)/ebin/couch.app
91 # couch_inets
93 #couch_inets
95 # fabric
97 $(BUILD_DIR)/FabricServer: $(BUILD_DIR)/libfabric.a
98 ifeq ($(COUCH_BIG_ENDIAN),true)
99 $(CPP) $(CPPFLAGS) $(LDFLAGS) FabricServer/FabricServer.cpp -DCOUCH_BIG_ENDIAN -o $(BUILD_DIR)/FabricServer -lfabric -licuuc -licui18n -licudata
100 else
101 $(CPP) $(CPPFLAGS) $(LDFLAGS) FabricServer/FabricServer.cpp -o $(BUILD_DIR)/FabricServer -lfabric -licuuc -licui18n -licudata
102 endif
103 @echo "FabricServer done"
106 $(BUILD_DIR)/FabricTests: fabric
107 $(CPP) $(CPPFLAGS) $(LDFLAGS) Fabric/FabricTests/FabricTests.cpp -o $(BUILD_DIR)/FabricTests -lfabric -licuuc -licui18n -licudata
108 @echo "Fabric Tests Done"
111 $(BUILD_DIR)/libfabric.a: $(FABRIC_OBJ_FILES) $(ANTLR_OBJ_FILES)
112 $(AR) rcs $(BUILD_DIR)/libfabric.a Fabric/*.o Fabric/GeneratedCode/*.o Fabric/antlr/*.o
114 Fabric/Fabric.o:
115 $(CPP) -c $(CPPFLAGS) Fabric/Fabric.cpp -o Fabric/Fabric.o
117 Fabric/Element.o:
118 $(CPP) -c $(CPPFLAGS) Fabric/Element.cpp -o Fabric/Element.o
120 Fabric/NewRuntimeNode.o:
121 $(CPP) -c $(CPPFLAGS) Fabric/NewRuntimeNode.cpp -o Fabric/NewRuntimeNode.o
123 Fabric/GeneratedCode/%.cpp:
124 ./Fabric/AntlrCodeGen.sh
126 Fabric/GeneratedCode/FabricLexer.o: Fabric/GeneratedCode/FabricLexer.cpp
127 $(CPP) -c $(CPPFLAGS) $< -o $@
129 Fabric/GeneratedCode/FabricParser.o: Fabric/GeneratedCode/FabricParser.cpp
130 $(CPP) -c $(CPPFLAGS) $< -o $@
133 Fabric/antlr/.cpp.o:
134 $(CPP) -c $(CPPFLAGS) $< -o $@
140 # clean
141 clean: clean_all
143 clean_all: clean_fabric clean_antlr clean_fabrictest clean_fabricserver
144 rm -rf build/* couch_build.beam CouchDb/*.beam
146 clean_fabric:
147 rm -f Fabric/*.o
149 clean_antlr:
150 rm -f Fabric/antlr/*.o
152 clean_fabrictest:
153 rm -f Fabric/FabricTest/FabricTest
155 clean_fabricserver:
156 rm -f FabricServer/FabricServer
158 distclean: clean_all
159 rm -f Fabric/GeneratedCode/*
161 .PHONY: clean clean_all clean_antlr clean_fabricserver clean_fabrictest fabric fabric_server couchdb host dist distclean