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: | ||
|  | 
 |