diff options
author | jiejiang <mail.jie.jiang@gmail.com> | 2014-01-16 00:31:20 +0400 |
---|---|---|
committer | jiejiang <mail.jie.jiang@gmail.com> | 2014-01-16 00:31:20 +0400 |
commit | f5a04db08eebc3a980f4326de5011357d06ea923 (patch) | |
tree | 7de11845f567e51b466ddfd3438aa848b827c930 /mingw | |
parent | 5f1217d793d5928a33c3d240e31e1164b8e2d083 (diff) |
c11 fix and mingw Makefile
Diffstat (limited to 'mingw')
-rw-r--r-- | mingw/Makefile | 264 |
1 files changed, 264 insertions, 0 deletions
diff --git a/mingw/Makefile b/mingw/Makefile new file mode 100644 index 000000000..4449e3047 --- /dev/null +++ b/mingw/Makefile @@ -0,0 +1,264 @@ + +# Environment +MKDIR=C:\MinGW\msys\1.0\bin\mkdir.exe +CP=C:\MinGW\msys\1.0\bin\cp.exe +GREP=C:\MinGW\msys\1.0\bin\grep.exe +SED=C:\MinGW\msys\1.0\bin\sed.exe +RM=C:\MinGW\msys\1.0\bin\rm.exe +NM=nm +CCADMIN=CCadmin +RANLIB=ranlib +CC=gcc +CCC=g++ +CXX=g++ +FC=gfortran +AS=as +AR=ar + +# Macros +CND_PLATFORM=MinGW-Windows +CND_DLIB_EXT=dll +CND_CONF=Debug +CND_DISTDIR=dist +CND_BUILDDIR=build + +# Object Directory +OBJECTDIR=${CND_BUILDDIR}\${CND_CONF}\${CND_PLATFORM} + +# C Compiler Flags +CFLAGS= + +# CC Compiler Flags +CCFLAGS= +CXXFLAGS=-g -Wall -DKENLM_MAX_ORDER=6 -DMAX_NUM_FACTORS=4 -D_WIN32 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -I. -ID:\work\moses\dependencies\boost_1_54_0_install\include +# -DWITH_THREADS + +# Fortran Compiler Flags +FFLAGS= + +# Assembler Flags +ASFLAGS= + +# Link Libraries and Options +LDLIBSOPTIONS=-LD:\work\moses\dependencies\boost_1_54_0_install\lib + +.PHONY : all +all: ${OBJECTDIR}\lmplz.exe ${OBJECTDIR}\moses-cmd.exe ${OBJECTDIR}\build_binary.exe \ + ${OBJECTDIR}\moses-chart-cmd.exe ${OBJECTDIR}\processPhraseTable.exe \ + ${OBJECTDIR}\processLexicalTable.exe ${OBJECTDIR}\CreateOnDiskPt.exe + +${OBJECTDIR}\\%.d: %.cc + ${MKDIR} -p ${subst \,/,$(@D)} + - ${RM} -f $@ + ${CXX} -MM $(CXXFLAGS) $< > $@.temp + ${SED} "1s/${*F}.o[ :]*/${subst \,\\\\,${OBJECTDIR}\$*}.o ${subst \,\\\\,${OBJECTDIR}\$*}.d : /g" < $@.temp > $@ + - ${RM} -f $@.temp + +${OBJECTDIR}\\%.d: %.cpp + ${MKDIR} -p ${subst \,/,$(@D)} + - ${RM} -f $@ + ${CXX} -MM $(CXXFLAGS) $< > $@.temp + ${SED} "1s/${*F}.o[ :]*/${subst \,\\\\,${OBJECTDIR}\$*}.o ${subst \,\\\\,${OBJECTDIR}\$*}.d : /g" < $@.temp > $@ + - ${RM} -f $@.temp + +# libutil +UTIL_CC_SLASH = ${wildcard util/*.cc util/stream/*.cc util/double-conversion/*.cc} +UTIL_CC = ${subst /,\,${UTIL_CC_SLASH}} +UTIL_O = ${addprefix ${OBJECTDIR}\,${UTIL_CC:%.cc=%.o}} +sinclude ${UTIL_O:%.o=%.d} + +${UTIL_O}: ${OBJECTDIR}\\%.o: %.cc + ${MKDIR} -p ${subst \,/,$(@D)} + $(CXX) $(CXXFLAGS) -c $< -o $@ + +${OBJECTDIR}\libutil.a: ${UTIL_O} + ${MKDIR} -p ${subst \,/,${OBJECTDIR}} + ${AR} -r -s ${OBJECTDIR}\libutil.a ${UTIL_O} + +# libkenlm +KENLM_CC_ALL_SLASH = ${wildcard lm/*.cc lm/builder/*.cc lm/filter/*.cc} +KENLM_CC_ALL = ${subst /,\,${KENLM_CC_ALL_SLASH}} +KENLM_CC = ${filter-out %main.cc %test.cc,${KENLM_CC_ALL}} +KENLM_O = ${addprefix ${OBJECTDIR}\,${KENLM_CC:%.cc=%.o}} +sinclude ${KENLM_O:%.o=%.d} + +${KENLM_O}: ${OBJECTDIR}\\%.o: %.cc + ${MKDIR} -p ${subst \,/,$(@D)} + ${CXX} ${CXXFLAGS} -c $< -o $@ + +${OBJECTDIR}\libkenlm.a: ${KENLM_O} + ${MKDIR} -p ${subst \,/,${OBJECTDIR}} + ${AR} -r -s ${OBJECTDIR}\libkenlm.a ${KENLM_O} + +#lmplz +sinclude ${OBJECTDIR}\lm\builder\lmplz_main.d + +${OBJECTDIR}\lm\builder\lmplz_main.o: ${OBJECTDIR}\\%.o: %.cc + ${MKDIR} -p ${subst \,/,$(@D)} + ${CXX} ${CXXFLAGS} -c $< -o $@ + +${OBJECTDIR}\lmplz.exe: ${OBJECTDIR}\lm\builder\lmplz_main.o ${OBJECTDIR}\libkenlm.a ${OBJECTDIR}\libutil.a + ${MKDIR} -p ${subst \,/,${OBJECTDIR}} + ${CXX} ${LDLIBSOPTIONS} -L ${OBJECTDIR} -static ${OBJECTDIR}\lm\builder\lmplz_main.o \ + -lkenlm -lutil \ + -lboost_system-mt -lboost_filesystem-mt -lboost_program_options-mt -lboost_thread-mt \ + -o ${OBJECTDIR}\lmplz.exe + +#build_binary +sinclude ${OBJECTDIR}\lm\build_binary_main.d + +${OBJECTDIR}\lm\build_binary_main.o: ${OBJECTDIR}\\%.o: %.cc + ${MKDIR} -p ${subst \,/,$(@D)} + ${CXX} ${CXXFLAGS} -c $< -o $@ + +${OBJECTDIR}\build_binary.exe: ${OBJECTDIR}\lm\build_binary_main.o ${OBJECTDIR}\libkenlm.a ${OBJECTDIR}\libutil.a + ${MKDIR} -p ${subst \,/,${OBJECTDIR}} + ${CXX} ${LDLIBSOPTIONS} -L ${OBJECTDIR} -static ${OBJECTDIR}\lm\build_binary_main.o \ + -lkenlm -lutil \ + -lboost_system-mt -lboost_filesystem-mt -lboost_program_options-mt -lboost_thread-mt \ + -o ${OBJECTDIR}\build_binary.exe + +#libondiskpt +ONDISKPT_CC = ${addprefix OnDiskPt\, OnDiskWrapper.cpp SourcePhrase.cpp TargetPhrase.cpp Word.cpp Phrase.cpp PhraseNode.cpp TargetPhraseCollection.cpp Vocab.cpp OnDiskQuery.cpp} +ONDISKPT_O = ${addprefix ${OBJECTDIR}\,${ONDISKPT_CC:%.cpp=%.o}} +sinclude ${ONDISKPT_O:%.o=%.d} + +${ONDISKPT_O}: ${OBJECTDIR}\\%.o: %.cpp + ${MKDIR} -p ${subst \,/,$(@D)} + ${CXX} ${CXXFLAGS} -c $< -o $@ + +${OBJECTDIR}\libondiskpt.a: ${ONDISKPT_O} + ${MKDIR} -p ${subst \,/,${OBJECTDIR}} + ${AR} -r -s ${OBJECTDIR}\libondiskpt.a ${ONDISKPT_O} + +#libmoses +MOSES_CC_ALL_SLASH = ${wildcard moses/*.cpp moses/TranslationModel/*.cpp \ + moses/TranslationModel/fuzzy-match/*.cpp \ + moses/TranslationModel/DynSAInclude/*.cpp \ + moses/TranslationModel/RuleTable/*.cpp \ + moses/TranslationModel/Scope3Parser/*.cpp \ + moses/TranslationModel/CYKPlusParser/*.cpp \ + moses/FF/*.cpp \ + moses/FF/OSM-Feature/*.cpp \ + moses/FF/LexicalReordering/*.cpp\ + moses/TranslationModel/CompactPT/*.cpp} +#lm +MOSES_CC_ALL_SLASH += ${addprefix moses\LM\, Backward.cpp BackwardLMState.cpp Base.cpp Implementation.cpp Joint.cpp Ken.cpp MultiFactor.cpp SingleFactor.cpp SkeletonLM.cpp} +MOSES_CC_ALL = ${subst /,\,${MOSES_CC_ALL_SLASH}} +MOSES_CC = ${filter-out %Test.cpp moses\Mock%.cpp,${MOSES_CC_ALL}} +MOSES_O = ${addprefix ${OBJECTDIR}\,${MOSES_CC:%.cpp=%.o}} +sinclude ${MOSES_O:%.o=%.d} + +${MOSES_O}: ${OBJECTDIR}\\%.o: %.cpp + ${MKDIR} -p ${subst \,/,$(@D)} + ${CXX} ${CXXFLAGS} -c $< -o $@ + +SEARCH_CC = ${addprefix search\, edge_generator.cc nbest.cc rule.cc vertex.cc} +SEARCH_O = ${addprefix ${OBJECTDIR}\,${SEARCH_CC:%.cc=%.o}} +sinclude ${SEARCH_O:%.o=%.d} + +${SEARCH_O}: ${OBJECTDIR}\\%.o: %.cc + ${MKDIR} -p ${subst \,/,$(@D)} + ${CXX} ${CXXFLAGS} -c $< -o $@ + +${OBJECTDIR}\libmoses.a: ${MOSES_O} ${SEARCH_O} + ${MKDIR} -p ${subst \,/,${OBJECTDIR}} + ${AR} -r -s ${OBJECTDIR}\libmoses.a ${MOSES_O} ${SEARCH_O} + +#libmosescmd +MOSESCMD_CC = ${addprefix moses-cmd\, IOWrapper.cpp mbr.cpp LatticeMBR.cpp TranslationAnalysis.cpp} +MOSESCMD_O = ${addprefix ${OBJECTDIR}\,${MOSESCMD_CC:%.cpp=%.o}} +sinclude ${MOSESCMD_O:%.o=%.d} + +${MOSESCMD_O}: ${OBJECTDIR}\\%.o: %.cpp + ${MKDIR} -p ${subst \,/,$(@D)} + ${CXX} ${CXXFLAGS} -c $< -o $@ + +#moses-cmd +sinclude ${OBJECTDIR}\moses-cmd\Main.d + +${OBJECTDIR}\moses-cmd\Main.o: ${OBJECTDIR}\\%.o: %.cpp + ${MKDIR} -p ${subst \,/,$(@D)} + ${CXX} ${CXXFLAGS} -c $< -o $@ + +${OBJECTDIR}\moses-cmd.exe: ${OBJECTDIR}\libmoses.a \ + ${OBJECTDIR}\libkenlm.a ${OBJECTDIR}\libondiskpt.a \ + ${OBJECTDIR}\libutil.a ${OBJECTDIR}\moses-cmd\Main.o ${MOSESCMD_O} + ${MKDIR} -p ${subst \,/,${OBJECTDIR}} + ${CXX} ${LDLIBSOPTIONS} -L ${OBJECTDIR} -static ${OBJECTDIR}\moses-cmd\Main.o ${MOSESCMD_O} \ + -lmoses -lkenlm -londiskpt -lutil \ + -lboost_iostreams-mt -lboost_bzip2-mt -lboost_zlib-mt -lboost_system-mt -lboost_filesystem-mt -lboost_thread-mt \ + -lz -lbz2 -ldl -lmman \ + -o ${OBJECTDIR}\moses-cmd.exe + +#moseschartcmd +MOSESCHARTCMD_CC = ${addprefix moses-chart-cmd\, Main.cpp mbr.cpp IOWrapper.cpp TranslationAnalysis.cpp} +MOSESCHARTCMD_O = ${addprefix ${OBJECTDIR}\,${MOSESCHARTCMD_CC:%.cpp=%.o}} +sinclude ${MOSESCHARTCMD_O:%.o=%.d} + +${MOSESCHARTCMD_O}: ${OBJECTDIR}\\%.o: %.cpp + ${MKDIR} -p ${subst \,/,$(@D)} + ${CXX} ${CXXFLAGS} -c $< -o $@ + +${OBJECTDIR}\moses-chart-cmd.exe: ${OBJECTDIR}\libmoses.a \ + ${OBJECTDIR}\libkenlm.a ${OBJECTDIR}\libondiskpt.a \ + ${OBJECTDIR}\libutil.a ${MOSESCHARTCMD_O} + ${MKDIR} -p ${subst \,/,${OBJECTDIR}} + ${CXX} ${LDLIBSOPTIONS} -L ${OBJECTDIR} -static ${MOSESCHARTCMD_O} \ + -lmoses -lkenlm -londiskpt -lutil \ + -lboost_iostreams-mt -lboost_bzip2-mt -lboost_zlib-mt -lboost_system-mt -lboost_filesystem-mt -lboost_thread-mt \ + -lz -lbz2 -ldl -lmman \ + -o ${OBJECTDIR}\moses-chart-cmd.exe + +#processPhraseTable +PROCESSPHRASETABLE_CC = ${addprefix misc\, GenerateTuples.cpp processPhraseTable.cpp} +PROCESSPHRASETABLE_O = ${addprefix ${OBJECTDIR}\,${PROCESSPHRASETABLE_CC:%.cpp=%.o}} +sinclude ${PROCESSPHRASETABLE_O:%.o=%.d} + +${PROCESSPHRASETABLE_O}: ${OBJECTDIR}\\%.o: %.cpp + ${MKDIR} -p ${subst \,/,$(@D)} + ${CXX} ${CXXFLAGS} -c $< -o $@ + +${OBJECTDIR}\processPhraseTable.exe: ${OBJECTDIR}\libmoses.a ${OBJECTDIR}\libutil.a ${PROCESSPHRASETABLE_O} + ${MKDIR} -p ${subst \,/,${OBJECTDIR}} + ${CXX} ${LDLIBSOPTIONS} -L ${OBJECTDIR} -static ${PROCESSPHRASETABLE_O} \ + -lmoses -lutil \ + -lboost_iostreams-mt -lboost_bzip2-mt -lboost_zlib-mt -lboost_system-mt -lboost_filesystem-mt -lboost_thread-mt \ + -lz -lbz2 -ldl -lmman \ + -o ${OBJECTDIR}\processPhraseTable.exe + +#processLexicalTable +PROCESSLEXTABLE_CC = ${addprefix misc\, processLexicalTable.cpp} +PROCESSLEXTABLE_O = ${addprefix ${OBJECTDIR}\,${PROCESSLEXTABLE_CC:%.cpp=%.o}} +sinclude ${PROCESSLEXTABLE_O:%.o=%.d} + +${PROCESSLEXTABLE_O}: ${OBJECTDIR}\\%.o: %.cpp + ${MKDIR} -p ${subst \,/,$(@D)} + ${CXX} ${CXXFLAGS} -c $< -o $@ + +${OBJECTDIR}\processLexicalTable.exe: ${OBJECTDIR}\libkenlm.a ${OBJECTDIR}\libmoses.a ${OBJECTDIR}\libutil.a ${OBJECTDIR}\libondiskpt.a ${PROCESSLEXTABLE_O} + ${MKDIR} -p ${subst \,/,${OBJECTDIR}} + ${CXX} ${LDLIBSOPTIONS} -L ${OBJECTDIR} -static ${PROCESSLEXTABLE_O} \ + -lmoses -lkenlm -londiskpt -lutil \ + -lboost_iostreams-mt -lboost_bzip2-mt -lboost_zlib-mt -lboost_system-mt -lboost_filesystem-mt -lboost_thread-mt \ + -lz -lbz2 -ldl -lmman \ + -o ${OBJECTDIR}\processLexicalTable.exe + +#ondiskpt +sinclude ${OBJECTDIR}\OnDiskPt\Main.d + +${OBJECTDIR}\OnDiskPt\Main.o: ${OBJECTDIR}\\%.o: %.cpp + ${MKDIR} -p ${subst \,/,$(@D)} + ${CXX} ${CXXFLAGS} -c $< -o $@ + +${OBJECTDIR}\CreateOnDiskPt.exe: ${OBJECTDIR}\OnDiskPt\Main.o ${OBJECTDIR}\libondiskpt.a ${OBJECTDIR}\libmoses.a ${OBJECTDIR}\libkenlm.a ${OBJECTDIR}\libutil.a + ${MKDIR} -p ${subst \,/,${OBJECTDIR}} + ${CXX} ${LDLIBSOPTIONS} -L ${OBJECTDIR} -static ${OBJECTDIR}\OnDiskPt\Main.o \ + -londiskpt -lmoses -lkenlm -lutil \ + -lboost_system-mt -lboost_filesystem-mt -lboost_program_options-mt -lboost_thread-mt \ + -lz -lbz2 -ldl -lmman \ + -o ${OBJECTDIR}\CreateOnDiskPt.exe + +.PHONY : clean +clean: + |