You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by nw...@apache.org on 2012/12/05 00:03:03 UTC

[lucy-commits] [4/9] git commit: refs/heads/c-bindings-wip1 - Initial Makefile for C bindings

Initial Makefile for C bindings


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

Branch: refs/heads/c-bindings-wip1
Commit: ca369e011f343ea92382c1e2dac2e3977c3ab7b8
Parents: 305412a
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Fri Nov 23 00:37:26 2012 +0100
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Wed Dec 5 00:00:15 2012 +0100

----------------------------------------------------------------------
 c/.gitignore |    4 +
 c/Makefile   |  343 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 347 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy/blob/ca369e01/c/.gitignore
----------------------------------------------------------------------
diff --git a/c/.gitignore b/c/.gitignore
new file mode 100644
index 0000000..aa07b49
--- /dev/null
+++ b/c/.gitignore
@@ -0,0 +1,4 @@
+/autogen/
+/charmonizer
+/charmony.h
+/liblucy.dylib

http://git-wip-us.apache.org/repos/asf/lucy/blob/ca369e01/c/Makefile
----------------------------------------------------------------------
diff --git a/c/Makefile b/c/Makefile
new file mode 100644
index 0000000..6163386
--- /dev/null
+++ b/c/Makefile
@@ -0,0 +1,343 @@
+CFC_DIR = ../clownfish/compiler/c
+LEMON_DIR = ../lemon
+LUCY_AUTOGEN_DIR = autogen
+LUCY_COMMON_DIR = ../common
+LUCY_CORE_DIR = ../core
+LUCY_MODULES_DIR = ../modules
+LUCY_SOURCE_DIR = src
+
+CFLAGS += \
+    -g \
+    -O2 \
+    -Wall \
+    -I. \
+    -I$(LUCY_SOURCE_DIR) \
+    -I$(LUCY_CORE_DIR) \
+    -I$(LUCY_AUTOGEN_DIR)/include \
+    -I$(LUCY_MODULES_DIR)/analysis/snowstem/source/include \
+    -I$(LUCY_MODULES_DIR)/unicode/ucd \
+    -I$(LUCY_MODULES_DIR)/unicode/utf8proc
+
+CHARMONY_H = charmony.h
+CHARMONIZER = charmonizer
+CHARMONIZER_C = $(LUCY_COMMON_DIR)/charmonizer.c
+
+LEMON = $(LEMON_DIR)/lemon
+LUCY_JSON_PARSER = $(LUCY_CORE_DIR)/Lucy/Util/Json/JsonParser
+
+CFC = $(CFC_DIR)/cfc
+
+LUCY_LIB = liblucy.dylib
+LUCY_OBJS = \
+    $(LUCY_SOURCE_DIR)/Clownfish/Err.o \
+    $(LUCY_SOURCE_DIR)/Clownfish/LockFreeRegistry.o \
+    $(LUCY_SOURCE_DIR)/Clownfish/Obj.o \
+    $(LUCY_SOURCE_DIR)/Clownfish/VTable.o \
+    $(LUCY_SOURCE_DIR)/CFBind.o \
+    $(LUCY_SOURCE_DIR)/Lucy/Analysis/RegexTokenizer.o \
+    $(LUCY_SOURCE_DIR)/Lucy/Document/Doc.o \
+    $(LUCY_SOURCE_DIR)/Lucy/Index/DocReader.o \
+    $(LUCY_SOURCE_DIR)/Lucy/Index/Inverter.o \
+    $(LUCY_CORE_DIR)/Clownfish/ByteBuf.o \
+    $(LUCY_CORE_DIR)/Clownfish/CharBuf.o \
+    $(LUCY_CORE_DIR)/Clownfish/Err.o \
+    $(LUCY_CORE_DIR)/Clownfish/Hash.o \
+    $(LUCY_CORE_DIR)/Clownfish/LockFreeRegistry.o \
+    $(LUCY_CORE_DIR)/Clownfish/Method.o \
+    $(LUCY_CORE_DIR)/Clownfish/Num.o \
+    $(LUCY_CORE_DIR)/Clownfish/Obj.o \
+    $(LUCY_CORE_DIR)/Clownfish/Util/Atomic.o \
+    $(LUCY_CORE_DIR)/Clownfish/Util/Memory.o \
+    $(LUCY_CORE_DIR)/Clownfish/Util/NumberUtils.o \
+    $(LUCY_CORE_DIR)/Clownfish/Util/SortUtils.o \
+    $(LUCY_CORE_DIR)/Clownfish/Util/StringHelper.o \
+    $(LUCY_CORE_DIR)/Clownfish/VArray.o \
+    $(LUCY_CORE_DIR)/Clownfish/VTable.o \
+    $(LUCY_CORE_DIR)/Lucy/Analysis/Analyzer.o \
+    $(LUCY_CORE_DIR)/Lucy/Analysis/CaseFolder.o \
+    $(LUCY_CORE_DIR)/Lucy/Analysis/EasyAnalyzer.o \
+    $(LUCY_CORE_DIR)/Lucy/Analysis/Inversion.o \
+    $(LUCY_CORE_DIR)/Lucy/Analysis/Normalizer.o \
+    $(LUCY_CORE_DIR)/Lucy/Analysis/PolyAnalyzer.o \
+    $(LUCY_CORE_DIR)/Lucy/Analysis/RegexTokenizer.o \
+    $(LUCY_CORE_DIR)/Lucy/Analysis/SnowballStemmer.o \
+    $(LUCY_CORE_DIR)/Lucy/Analysis/SnowballStopFilter.o \
+    $(LUCY_CORE_DIR)/Lucy/Analysis/StandardTokenizer.o \
+    $(LUCY_CORE_DIR)/Lucy/Analysis/Token.o \
+    $(LUCY_CORE_DIR)/Lucy/Document/Doc.o \
+    $(LUCY_CORE_DIR)/Lucy/Document/HitDoc.o \
+    $(LUCY_CORE_DIR)/Lucy/Highlight/HeatMap.o \
+    $(LUCY_CORE_DIR)/Lucy/Highlight/Highlighter.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/BackgroundMerger.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/BitVecDelDocs.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/DataReader.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/DataWriter.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/DeletionsReader.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/DeletionsWriter.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/DocReader.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/DocVector.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/DocWriter.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/FilePurger.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/HighlightReader.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/HighlightWriter.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/Indexer.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/IndexManager.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/IndexReader.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/Inverter.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/Lexicon.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/LexiconReader.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/LexiconWriter.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/LexIndex.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/PolyLexicon.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/PolyReader.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/Posting/MatchPosting.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/Posting/RawPosting.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/Posting/RichPosting.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/Posting/ScorePosting.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/Posting.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/PostingList.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/PostingListReader.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/PostingListWriter.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/PostingPool.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/RawLexicon.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/RawPostingList.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/SegLexicon.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/Segment.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/SegPostingList.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/SegReader.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/SegWriter.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/Similarity.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/SkipStepper.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/Snapshot.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/SortCache/NumericSortCache.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/SortCache/TextSortCache.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/SortCache.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/SortFieldWriter.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/SortReader.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/SortWriter.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/TermInfo.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/TermStepper.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/TermVector.o \
+    $(LUCY_CORE_DIR)/Lucy/Index/ZombieKeyedHash.o \
+    $(LUCY_CORE_DIR)/Lucy/Object/BitVector.o \
+    $(LUCY_CORE_DIR)/Lucy/Object/I32Array.o \
+    $(LUCY_CORE_DIR)/Lucy/Plan/Architecture.o \
+    $(LUCY_CORE_DIR)/Lucy/Plan/BlobType.o \
+    $(LUCY_CORE_DIR)/Lucy/Plan/FieldType.o \
+    $(LUCY_CORE_DIR)/Lucy/Plan/FullTextType.o \
+    $(LUCY_CORE_DIR)/Lucy/Plan/NumericType.o \
+    $(LUCY_CORE_DIR)/Lucy/Plan/Schema.o \
+    $(LUCY_CORE_DIR)/Lucy/Plan/StringType.o \
+    $(LUCY_CORE_DIR)/Lucy/Plan/TextType.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/ANDMatcher.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/ANDQuery.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/BitVecMatcher.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/Collector/SortCollector.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/Collector.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/Compiler.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/HitQueue.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/Hits.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/IndexSearcher.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/LeafQuery.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/MatchAllMatcher.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/MatchAllQuery.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/MatchDoc.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/Matcher.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/NoMatchMatcher.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/NoMatchQuery.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/NOTMatcher.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/NOTQuery.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/ORMatcher.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/ORQuery.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/PhraseMatcher.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/PhraseQuery.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/PolyMatcher.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/PolyQuery.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/PolySearcher.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/Query.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/QueryParser/ParserElem.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/QueryParser/QueryLexer.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/QueryParser.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/RangeMatcher.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/RangeQuery.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/RequiredOptionalMatcher.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/RequiredOptionalQuery.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/Searcher.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/SeriesMatcher.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/SortRule.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/SortSpec.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/Span.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/TermMatcher.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/TermQuery.o \
+    $(LUCY_CORE_DIR)/Lucy/Search/TopDocs.o \
+    $(LUCY_CORE_DIR)/Lucy/Store/CompoundFileReader.o \
+    $(LUCY_CORE_DIR)/Lucy/Store/CompoundFileWriter.o \
+    $(LUCY_CORE_DIR)/Lucy/Store/DirHandle.o \
+    $(LUCY_CORE_DIR)/Lucy/Store/FileHandle.o \
+    $(LUCY_CORE_DIR)/Lucy/Store/FileWindow.o \
+    $(LUCY_CORE_DIR)/Lucy/Store/Folder.o \
+    $(LUCY_CORE_DIR)/Lucy/Store/FSDirHandle.o \
+    $(LUCY_CORE_DIR)/Lucy/Store/FSFileHandle.o \
+    $(LUCY_CORE_DIR)/Lucy/Store/FSFolder.o \
+    $(LUCY_CORE_DIR)/Lucy/Store/InStream.o \
+    $(LUCY_CORE_DIR)/Lucy/Store/Lock.o \
+    $(LUCY_CORE_DIR)/Lucy/Store/LockFactory.o \
+    $(LUCY_CORE_DIR)/Lucy/Store/OutStream.o \
+    $(LUCY_CORE_DIR)/Lucy/Store/RAMDirHandle.o \
+    $(LUCY_CORE_DIR)/Lucy/Store/RAMFile.o \
+    $(LUCY_CORE_DIR)/Lucy/Store/RAMFileHandle.o \
+    $(LUCY_CORE_DIR)/Lucy/Store/RAMFolder.o \
+    $(LUCY_CORE_DIR)/Lucy/Store/SharedLock.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Analysis/TestAnalyzer.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Analysis/TestCaseFolder.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Analysis/TestNormalizer.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Analysis/TestPolyAnalyzer.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Analysis/TestRegexTokenizer.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Analysis/TestSnowballStemmer.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Analysis/TestSnowballStopFilter.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Analysis/TestStandardTokenizer.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Highlight/TestHeatMap.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Highlight/TestHighlighter.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Index/TestDocWriter.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Index/TestHighlightWriter.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Index/TestIndexManager.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Index/TestPolyReader.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Index/TestPostingListWriter.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Index/TestSegment.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Index/TestSegWriter.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Index/TestSnapshot.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Index/TestTermInfo.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Object/TestBitVector.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Object/TestByteBuf.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Object/TestCharBuf.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Object/TestErr.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Object/TestHash.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Object/TestI32Array.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Object/TestLockFreeRegistry.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Object/TestNum.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Object/TestObj.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Object/TestVArray.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Plan/TestArchitecture.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Plan/TestBlobType.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Plan/TestFieldMisc.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Plan/TestFieldType.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Plan/TestFullTextType.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Plan/TestNumericType.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Search/TestLeafQuery.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Search/TestMatchAllQuery.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Search/TestNoMatchQuery.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Search/TestNOTQuery.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Search/TestPhraseQuery.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Search/TestPolyQuery.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Search/TestQueryParser.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Search/TestQueryParserLogic.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Search/TestQueryParserSyntax.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Search/TestRangeQuery.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Search/TestReqOptQuery.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Search/TestSeriesMatcher.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Search/TestSortSpec.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Search/TestSpan.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Search/TestTermQuery.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Store/MockFileHandle.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Store/TestCompoundFileReader.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Store/TestCompoundFileWriter.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Store/TestFileHandle.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Store/TestFolder.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Store/TestFolderCommon.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Store/TestFSDirHandle.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Store/TestFSFileHandle.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Store/TestFSFolder.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Store/TestInStream.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Store/TestIOChunks.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Store/TestIOPrimitives.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Store/TestRAMDirHandle.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Store/TestRAMFileHandle.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Store/TestRAMFolder.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/TestSchema.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/TestUtils.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Util/BBSortEx.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Util/TestAtomic.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Util/TestIndexFileNames.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Util/TestJson.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Util/TestMemory.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Util/TestMemoryPool.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Util/TestNumberUtils.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Util/TestPriorityQueue.o \
+    $(LUCY_CORE_DIR)/Lucy/Test/Util/TestStringHelper.o \
+    $(LUCY_CORE_DIR)/Lucy/Test.o \
+    $(LUCY_CORE_DIR)/Lucy/Util/Debug.o \
+    $(LUCY_CORE_DIR)/Lucy/Util/Freezer.o \
+    $(LUCY_CORE_DIR)/Lucy/Util/IndexFileNames.o \
+    $(LUCY_CORE_DIR)/Lucy/Util/Json.o \
+    $(LUCY_CORE_DIR)/Lucy/Util/Json/JsonParser.o \
+    $(LUCY_CORE_DIR)/Lucy/Util/MemoryPool.o \
+    $(LUCY_CORE_DIR)/Lucy/Util/PriorityQueue.o \
+    $(LUCY_CORE_DIR)/Lucy/Util/ProcessID.o \
+    $(LUCY_CORE_DIR)/Lucy/Util/Sleep.o \
+    $(LUCY_CORE_DIR)/Lucy/Util/SortExternal.o \
+    $(LUCY_CORE_DIR)/Lucy/Util/Stepper.o \
+    $(LUCY_CORE_DIR)/Lucy.o \
+    $(LUCY_CORE_DIR)/LucyX/Search/FilterMatcher.o \
+    $(LUCY_CORE_DIR)/LucyX/Search/MockMatcher.o \
+    $(LUCY_CORE_DIR)/LucyX/Search/ProximityMatcher.o \
+    $(LUCY_CORE_DIR)/LucyX/Search/ProximityQuery.o \
+    $(LUCY_MODULES_DIR)/analysis/snowstem/source/libstemmer/libstemmer_utf8.o \
+    $(LUCY_MODULES_DIR)/analysis/snowstem/source/runtime/api.o \
+    $(LUCY_MODULES_DIR)/analysis/snowstem/source/runtime/utilities.o \
+    $(LUCY_MODULES_DIR)/analysis/snowstem/source/src_c/stem_UTF_8_danish.o \
+    $(LUCY_MODULES_DIR)/analysis/snowstem/source/src_c/stem_UTF_8_dutch.o \
+    $(LUCY_MODULES_DIR)/analysis/snowstem/source/src_c/stem_UTF_8_english.o \
+    $(LUCY_MODULES_DIR)/analysis/snowstem/source/src_c/stem_UTF_8_finnish.o \
+    $(LUCY_MODULES_DIR)/analysis/snowstem/source/src_c/stem_UTF_8_french.o \
+    $(LUCY_MODULES_DIR)/analysis/snowstem/source/src_c/stem_UTF_8_german.o \
+    $(LUCY_MODULES_DIR)/analysis/snowstem/source/src_c/stem_UTF_8_hungarian.o \
+    $(LUCY_MODULES_DIR)/analysis/snowstem/source/src_c/stem_UTF_8_italian.o \
+    $(LUCY_MODULES_DIR)/analysis/snowstem/source/src_c/stem_UTF_8_norwegian.o \
+    $(LUCY_MODULES_DIR)/analysis/snowstem/source/src_c/stem_UTF_8_porter.o \
+    $(LUCY_MODULES_DIR)/analysis/snowstem/source/src_c/stem_UTF_8_portuguese.o \
+    $(LUCY_MODULES_DIR)/analysis/snowstem/source/src_c/stem_UTF_8_romanian.o \
+    $(LUCY_MODULES_DIR)/analysis/snowstem/source/src_c/stem_UTF_8_russian.o \
+    $(LUCY_MODULES_DIR)/analysis/snowstem/source/src_c/stem_UTF_8_spanish.o \
+    $(LUCY_MODULES_DIR)/analysis/snowstem/source/src_c/stem_UTF_8_swedish.o \
+    $(LUCY_MODULES_DIR)/analysis/snowstem/source/src_c/stem_UTF_8_turkish.o \
+    $(LUCY_MODULES_DIR)/analysis/snowstop/source/snowball_stoplists.o \
+    $(LUCY_MODULES_DIR)/unicode/utf8proc/utf8proc.o \
+    $(LUCY_AUTOGEN_DIR)/source/parcel.o
+
+all : $(LUCY_LIB)
+
+$(CHARMONIZER) : $(CHARMONIZER_C)
+	$(CC) $(CFLAGS) $(CHARMONIZER_C) -o $@
+
+$(CHARMONY_H) : $(CHARMONIZER)
+	./$(CHARMONIZER) --cc=$(CC) --enable-c -- $(CFLAGS)
+
+$(LEMON) :
+	make -C $(LEMON_DIR)
+
+$(LUCY_JSON_PARSER).c $(LUCY_JSON_PARSER).h: $(LEMON) $(LUCY_JSON_PARSER).y
+	$(LEMON) -q $(LUCY_JSON_PARSER).y
+
+$(CFC) :
+	make -C $(CFC_DIR)
+
+$(LUCY_AUTOGEN_DIR) : $(CFC)
+	$(CFC) --source=$(LUCY_CORE_DIR) --dest=$(LUCY_AUTOGEN_DIR)
+
+$(LUCY_OBJS) : $(CHARMONY_H) $(LUCY_JSON_PARSER).h $(LUCY_AUTOGEN_DIR)
+
+$(LUCY_LIB) : $(LUCY_OBJS)
+	$(CC) -dynamiclib $(LDFLAGS) $(LUCY_OBJS) $(LOADLIBES) $(LDLIBS) -o $@
+
+clean :
+	rm -rf \
+	    $(CHARMONIZER) \
+	    $(CHARMONY_H) \
+	    $(LUCY_JSON_PARSER).c \
+	    $(LUCY_JSON_PARSER).h \
+	    $(LUCY_AUTOGEN_DIR) \
+	    $(LUCY_OBJS) \
+	    $(LUCY_LIB)
+	make -C $(CFC_DIR) clean
+	make -C $(LEMON_DIR) clean
+