Files
b2txt25/language_model/srilm-1.7.3/Makefile
2025-07-02 12:18:09 -07:00

177 lines
4.9 KiB
Makefile

#
# Top-level Makefile for SRILM
#
# $Header: /home/srilm/CVS/srilm/Makefile,v 1.73 2019/09/10 17:48:09 stolcke Exp $
#
# SRILM = /home/speech/stolcke/project/srilm/devel
MACHINE_TYPE := $(shell $(SRILM)/sbin/machine-type)
RELEASE := $(shell cat RELEASE)
# Include common SRILM variable definitions.
include $(SRILM)/common/Makefile.common.variables
PACKAGE_DIR = ..
INFO = \
ACKNOWLEDGEMENTS \
CHANGES \
Copyright \
License \
README \
RELEASE \
doc
MODULES = \
misc \
dstruct \
lm \
flm \
lattice \
utils \
zlib
EXCLUDE = \
me \
htk \
contrib \
lm/src/test \
flm/src/test \
lattice/src/test \
dstruct/src/test \
utils/src/fsmtest \
zlib/orig \
common/COMPILE-HOSTS
VERSION_HEADER = \
SRILMversion.h
MAKE_VARS = \
SRILM=$(SRILM) \
MACHINE_TYPE=$(MACHINE_TYPE) \
OPTION=$(OPTION) \
MAKE_PIC=$(MAKE_PIC)
World: dirs
$(MAKE) init
$(MAKE) release-headers
$(MAKE) depend
$(MAKE) release-libraries
$(MAKE) release-programs
$(MAKE) release-scripts
# build central include directory and scripts only
msvc: dirs
$(MAKE) init
$(MAKE) release-headers
(cd misc/src; $(MAKE) $(MAKE_VARS) $(VERSION_HEADER))
$(MAKE) release-scripts
cd utils/src; $(MAKE) $(MAKE_VARS) release
depend-all: dirs release-headers
@gawk '!/^#/ { print $$1, $$2, $$3 }' common/COMPILE-HOSTS | sort -u | \
while read prog host type; do \
rm -f DONE; (set -x; \
$$prog $$host "cd $(SRILM); $(MAKE) $(MFLAGS) SRILM=$(SRILM) MACHINE_TYPE=$$type OPTION=$(OPTION) init depend && touch DONE" < /dev/null); \
[ -f DONE ] || exit 1; \
done; rm -f DONE
compile-all: dirs
@gawk '!/^#/' common/COMPILE-HOSTS | \
while read prog host type option; do \
rm -f DONE; (set -x; \
$$prog $$host "cd $(SRILM); $(MAKE) $(MFLAGS) SRILM=$(SRILM) MACHINE_TYPE=$$type OPTION=$$option init release-libraries release-programs && touch DONE" < /dev/null); \
[ -f DONE ] || exit 1; \
done; rm -f DONE
clean-all: dirs
@gawk '!/^#/' common/COMPILE-HOSTS | \
while read prog host type option; do \
rm -f DONE; (set -x; \
$$prog $$host "cd $(SRILM); $(MAKE) $(MFLAGS) SRILM=$(SRILM) MACHINE_TYPE=$$type OPTION=$$option cleanest && touch DONE" < /dev/null); \
[ -f DONE ] || exit 1; \
done; rm -f DONE
dirs:
-mkdir -p include lib bin
remove-dirs:
-$(RMDIR) $(SRILM_BINDIR)
-$(RMDIR) $(SRILM_LIBDIR)
-$(RMDIR) $(SRILM_BIN)
-$(RMDIR) $(SRILM_LIB)
-$(RMDIR) $(SRILM_INCDIR)
init depend all programs release clean cleaner cleanest superclean sanitize desanitize \
release-headers release-libraries release-programs release-scripts:
for subdir in $(MODULES); do \
(cd $$subdir/src; $(MAKE) $(MAKE_VARS) $@) || exit 1; \
done
pristine:
for subdir in $(MODULES); do \
(cd $$subdir/src; $(MAKE) $(MAKE_VARS) $@) || exit 1; \
done
$(MAKE) $(MAKE_VARS) remove-dirs
test try gzip:
for subdir in $(MODULES); do \
[ ! -d $$subdir/test ] || \
(cd $$subdir/test; $(MAKE) $(MAKE_VARS) $@) || exit 1; \
done
# files needed for the web page
WWW_DOCS = CHANGES License INSTALL RELEASE
WWW_DIR = /home/spftp/www/DocumentRoot/projects/srilm
www: $(WWW_DOCS)
$(INSTALL) -m 444 $(WWW_DOCS) $(WWW_DIR)/docs
$(INSTALL) -m 444 man/html/*.[1-9].html $(WWW_DIR)/manpages
TAR = tar
INSTALL = install
PACKAGE_FILE = srilm-$(RELEASE).tar.gz
PACKAGE_FILE_NOTEST = srilm-$(RELEASE)-notest.tar.gz
PACKAGE_FILE_BIN = srilm-$(RELEASE)-$(MACHINE_TYPE).tar.gz
package: $(PACKAGE_DIR)/EXCLUDE
(cd misc/src; $(MAKE) $(MAKE_VARS) $(VERSION_HEADER))
$(TAR) cvzXf $(PACKAGE_DIR)/EXCLUDE $(PACKAGE_DIR)/$(PACKAGE_FILE) .
rm $(PACKAGE_DIR)/EXCLUDE
package_notest: $(PACKAGE_DIR)/EXCLUDE
echo test >> $(PACKAGE_DIR)/EXCLUDE
$(TAR) cvzXf $(PACKAGE_DIR)/EXCLUDE $(PACKAGE_DIR)/$(PACKAGE_FILE_NOTEST) .
rm $(PACKAGE_DIR)/EXCLUDE
package_bin: $(PACKAGE_DIR)/EXCLUDE-$(MACHINE_TYPE)
$(TAR) cvhzXf $(PACKAGE_DIR)/EXCLUDE-$(MACHINE_TYPE) $(PACKAGE_DIR)/$(PACKAGE_FILE_BIN) $(INFO) include lib man bin sbin
rm $(PACKAGE_DIR)/EXCLUDE
rm -f $(PACKAGE_DIR)/EXCLUDE-$(MACHINE_TYPE)
package_x:
$(MAKE) $(MAKE_VARS) sanitize
$(MAKE) $(MAKE_VARS) RELEASE=$(RELEASE)_x package
$(MAKE) $(MAKE_VARS) desanitize
$(PACKAGE_DIR)/EXCLUDE: force
rm -f DONE
(find bin/* lib/* */bin/* */obj/* */src/test */test/output */test/logs -type d -print -prune ; \
ls build* go.build-*; \
find $(EXCLUDE) include bin -print; \
find . \( -name Makefile.site.\* -o -name "*.~[0-9]*" -o -name ".#*" -o -name Dependencies.\* -o -name core -o -name "core.[0-9]*" -o -name \*.3rdparty -o -name .gdb_history -o -name out.\* -o -name "*[._]pure[._]*" -o -type l -o -name RCS -o -name CVS -o -name .cvsignore -o -name GZ.files \) -print) | \
sed 's,^\./,,' > $@
$(PACKAGE_DIR)/EXCLUDE-$(MACHINE_TYPE): $(PACKAGE_DIR)/EXCLUDE
fgrep -l /bin/sh bin/* > $(PACKAGE_DIR)/EXCLUDE-shell
fgrep -v -f $(PACKAGE_DIR)/EXCLUDE-shell $(PACKAGE_DIR)/EXCLUDE | \
egrep -v 'include|^bin$$|$(MACHINE_TYPE)[^~]*$$' > $@
-egrep '$(MACHINE_TYPE).*[._]pure[._]' $(PACKAGE_DIR)/EXCLUDE >> $@
-egrep '$(MACHINE_TYPE)_[gp]' $(PACKAGE_DIR)/EXCLUDE >> $@
rm -f $(PACKAGE_DIR)/EXCLUDE-shell
force: