177 lines
4.9 KiB
Makefile
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:
|
|
|