403Webshell
Server IP : 118.27.122.248  /  Your IP : 216.73.217.142
Web Server : Apache
System : Linux web0264.sh.tyo1 4.18.0-553.79.1.lve.el7h.x86_64 #1 SMP Wed Oct 15 16:34:46 UTC 2025 x86_64
User : c9415830 ( 11735)
PHP Version : 8.4.17
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/jp-secure/siteguardlite/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/jp-secure/siteguardlite/Makefile
# -*- makefile-gmake -*-
# Makefile for SiteGuard Lite Ver3.30 Update1
#  - run "make install" for full installation
#
# Ver0.90:                      2011-11-11
# Ver1.00 Beta:                 2011-12-01
# Ver1.00:                      2012-02-01 
# Ver1.10:                      2012-06-20
# Ver1.20:                      2012-11-02
# Ver1.30:                      2013-08-30
# Ver2.00:                      2013-10-31
# Ver2.00 Update1:              2014-04-08
# Ver2.00 Update2:              2014-06-18
# Ver2.10:                      2014-06-25
# Ver2.10 Update1:              2014-08-01
# Ver2.10 Update2:              2014-09-04
# Ver2.10 Update3:              2014-12-01
# Ver2.20:                      2015-03-20
# Ver2.30:                      2015-07-01
# Ver2.30 Update1:              2016-02-01
# Ver3.00:                      2016-04-01
# Ver3.00 Update1:              2016-06-13
# Ver3.00 Update2:              2016-07-20
# Ver3.10                       2016-08-20
# Ver3.20                       2017-01-20
# Ver3.30                       2017-06-20
# Ver3.30 Update1:              2017-10-19
#

include Makefile.vars
include setup.config

TOPDIR=.

RPMBUILD	= rpmbuild

BUILD=

SRC_COMPONENTS = siteguard/license_check siteguard/check_pcre siteguard/filter_util siteguard/siteguardlite_notify

ifeq ("X$(SERVER)","XAPACHE")
	DISTFILES_BIN_MODULE = modules/mod_siteguard_$(OSBIT)_{2.2.so,2.4.so}
else
	DISTFILES_BIN_MODULE = nginx
endif
DISTFILES_CONFIG	= setup.config conf/{$(PRODUCT).ini,license.txt,expire.txt,notify_exclude_action.txt,notify_exclude_sig.txt,notify_exclude_detect.txt,monitor_url.txt,template_*.{txt,html},$(PRODUCT).htdigest,dbupdate.conf,httpd.conf.siteguardlite_add,nginx.conf.siteguardlite_add} conf/waf/*.txt conf/waf/header.ini conf/ssl/* conf/dbupdate_waf.conf conf/chart.conf conf/home.conf conf/purgestatistics.conf conf/report.conf conf/cutthrough_url.txt conf/dbupdate_waf_url.conf conf/sync/* 

DISTFILES_BIN_COMMON	= $(PRODUCT).spec.in setup.sh set_secontext.sh rc.$(PRODUCT)_http rc.$(PRODUCT)_admin rc.$(PRODUCT)_notify $(PRODUCT)_admin.command $(PRODUCT)_notify.command $(PRODUCT)_admin.service $(PRODUCT)_notify.service
DISTFILES_BIN_COPY = $(DISTFILES_BIN_MODULE) tomcat font reportImg doc/ misc/ conf/{ja,en} conf/$(PRODUCT).conf conf/$(PRODUCT).conf.nginx conf/$(PRODUCT).htdigest.org conf/httpd.conf.siteguardlite_admin_ssl-template conf/nginx.conf.siteguardlite_admin_ssl-template conf/siteguardlite_4.te conf/siteguardlite_5.te conf/siteguardlite_6.te conf/siteguardlite.te Makefile Makefile.vars Makefile.verup-config setup.sh set_secontext.sh dbupdate_waf sync_send.sh syncSend.jar waf_sig_merge.pl make_conf_log.sh conf/waf/unicode.map $(PRODUCT)_statistics.sh statistics_collect.awk configured.module get_version
DISTFILES_BIN_OTHER = rc.$(PRODUCT)_http rc.$(PRODUCT)_admin rc.$(PRODUCT)_notify $(PRODUCT)_admin.command $(PRODUCT)_notify.command $(PRODUCT)_admin.service $(PRODUCT)_notify.service
DISTFILES_BIN	= $(DISTFILES_BIN_COPY) $(DISTFILES_BIN_OTHER)
INSTALLFILES_BIN = $(DISTFILES_BIN) $(notdir $(SRC_COMPONENTS))
DISTFILES_DEF	= databases_waf

DISTFILES_SRC	=  doc/ rc.* $(PRODUCT)_{admin,notify}.service misc/ doc-en/ srcdoc/ conf/{ja,en} conf/waf Makefile* dbupdate_waf \
			siteguard/{Makefile*,*.c,*.h,*.S} \
			conf/{expire.txt*,license.txt*} \
			*.spec.in \
			$(DISTFILES_CONFIG) \
			$(DISTFILES_DEF)

DISTFILES	= $(DISTFILES_SRC) $(DISTFILES_BIN_COMMON) $(DISTFILES_BIN) $(SRC_COMPONENTS)


DISTPRODUCT = $(PRODUCT)

ifeq ("X$(SERVER)","XAPACHE")
	SERVER_NAME=.apache
	NGINXBIN=
	NGINX_TYPE=
else
	SERVER_NAME=.nginx
	APACHECTL=
	APACHEBIN=
	APACHE_TYPE=
endif

BUILD_DEST      = release
PACKAGE		= $(DISTPRODUCT)
DISTDIR_BIN	= $(BUILD_DEST)/image/var/tmp/$(PACKAGE)-$(VERSION_DOT)-$(UPDATE)$(SERVER_NAME).$(ARCH)
DISTDIR_SRC	= $(PACKAGE)-src-$(VERSION_DOT).$(BUILD)
DISTFILE_RPM = $(PACKAGE)-$(VERSION_DOT)-$(UPDATE)$(SERVER_NAME).$(ARCH).rpm 

SUBDIRS_WITH_MAKEFLAGS=tomcat siteguard
SUBDIRS_WITHOUT_MAKEFLAGS=
SUBDIRS=$(SUBDIRS_WITH_MAKEFLAGS) $(SUBDIRS_WITHOUT_MAKEFLAGS)

lang=
adminport=

.c.o:
	$(CC) -c $(CFLAGS) $<

# Remove needless and confusing implicit dependency
% : %.c
% : %.o

all: issource buildtools-setup $(TARGET)

misc/logconv: misc/logconv.c
	$(CC) -o misc/logconv -O9 $(CFLAGS) -O9 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 misc/logconv.c

misc/get_glibcver: misc/get_glibcver.c
	$(CC) -o $@ -O9 $(CFLAGS) -O9 $<

submake:
	@for dir in $(SUBDIRS_WITHOUT_MAKEFLAGS); do \
		echo "Making $@ in $$dir..."; \
		(unset MAKEFLAGS; cd $$dir && $(MAKE) CC=$(CC) all) || exit 1; \
	done
	@for dir in $(SUBDIRS_WITH_MAKEFLAGS); do \
		echo "Making $@ in $$dir..."; \
		(cd $$dir && $(MAKE) CC=$(CC) all) || exit 1; \
	done

issource:
	$(MAKE) usage
	@false

buildtools-setup: buildtools buildtools/apache-ant-1.7.1

buildtools:
	mkdir buildtools

symlink:
	@if [ ! -d logs ]; then mkdir logs ; fi
	@for d in $(LOGDIRS); do \
		if [ ! -e logs/$$d ]; then mkdir logs/$$d ; fi ;\
	done

	@echo "Linking"
	@if [ ! -L tomcat/logs ]; then ln -sf ../logs/admin tomcat/logs ; fi
	@if [ ! -L tomcat/webapps/jp_secure/WebContent/gwdoc ]; then ln -sf ../../../../doc/ tomcat/webapps/jp_secure/WebContent/gwdoc ; fi
	@if [ ! -L tomcat/webapps/jp_secure/WebContent/log ]; then ln -sf ../../../../logs/ tomcat/webapps/jp_secure/WebContent/log ; fi
	@if [ ! -e conf/expire.txt ]; then cp -p conf/expire.txt.orig conf/expire.txt ; fi

create-setup-config:
	@if [ $(OVERWRITE) = "yes" -a ! -e $(prefix)/setup.config ]; then \
		echo "SERVER=APACHE"                         >  $(prefix)/setup.config; \
		egrep "^APACHE_CONFFILE=" $(prefix)/Makefile >> $(prefix)/setup.config; \
		egrep "^APACHE_TYPE="     $(prefix)/Makefile >> $(prefix)/setup.config; \
		egrep "^APACHECTL="       $(prefix)/Makefile >> $(prefix)/setup.config; \
		egrep "^APACHEBIN="       $(prefix)/Makefile >> $(prefix)/setup.config; \
		if egrep "^admin_service=yes" $(prefix)/conf/$(PRODUCT).ini >/dev/null 2>&1; then \
			echo "CONSOLE_ENABLE=yes"                   >> $(prefix)/setup.config; \
			port=`grep "Listen " $(prefix)/conf/httpd.conf.siteguardlite_admin_ssl | sed 's/^Listen \(.*\)$$/\1/;s/^\(.*\):\([0-9]*\)$$/\2/'`; \
			allow=`grep "Allow from " $(prefix)/conf/httpd.conf.siteguardlite_admin_ssl | sed 's/^.*Allow from \(.*\)\$$/\1/'`; \
			ssl_crt=`grep "^[^#].*SSLCertificateFile " $(prefix)/conf/httpd.conf.siteguardlite_admin_ssl | sed 's/^.*SSLCertificateFile \(.*\)\$$/\1/'`; \
			ssl_key=`grep "^[^#].*SSLCertificateKeyFile " $(prefix)/conf/httpd.conf.siteguardlite_admin_ssl | sed 's/^.*SSLCertificateKeyFile \(.*\)\$$/\1/'`; \
			ssl_chain=`grep "^[^#].*SSLCertificateChainFile " $(prefix)/conf/httpd.conf.siteguardlite_admin_ssl | sed 's/^.*SSLCertificateChainFile \(.*\)\$$/\1/'`; \
			echo "CONSOLE_PORT=$${port}"                >> $(prefix)/setup.config; \
			echo "CONSOLE_ALLOW_ADDRESS=\"$${allow}\""  >> $(prefix)/setup.config; \
			echo "CONSOLE_SSL_CRT=$${ssl_crt}"          >> $(prefix)/setup.config; \
			echo "CONSOLE_SSL_KEY=$${ssl_key}"          >> $(prefix)/setup.config; \
			echo "CONSOLE_SSL_CHAIN=$${ssl_chain}"      >> $(prefix)/setup.config; \
			java_path=`(LANG=C;ls -l $(prefix)/java) | awk '{print $$11}'`; \
			echo "JAVA_PATH=$${java_path}"              >> $(prefix)/setup.config; \
			console_addr=`grep "Listen " $(prefix)/conf/httpd.conf.siteguardlite_admin_ssl | sed 's/^Listen \(.*\)$$/\1/;s/^\(.*\):\([0-9]*\)$$/\1/;s/'$${port}'$$//'`; \
			svchost=`perl -ne 'if(/^\[(.+)\]/){$$svc=$$1;}if(($$svc eq 'admin') && m|^svcport=(.*:)?(.*)|){print "$$1";}' $(prefix)/conf/$(PRODUCT).ini | sed s/:$$//` ;\
			svcport=`perl -ne 'if(/^\[(.+)\]/){$$svc=$$1;}if(($$svc eq 'admin') && m|^svcport=(.*:)?(.*)|){print "$$2";}' $(prefix)/conf/$(PRODUCT).ini` ;\
			if [ -n "$${console_addr}" ]; then \
				echo "CONSOLE_ADDRESS=$${console_addr}"    >> $(prefix)/setup.config; \
			else \
				echo "CONSOLE_ADDRESS="                    >> $(prefix)/setup.config; \
			fi; \
			if [ -n "$${svchost}" ]; then \
				echo "TOMCAT_ADDRESS=$${svchost}"          >> $(prefix)/setup.config; \
			else \
				echo "TOMCAT_ADDRESS=127.0.0.1"            >> $(prefix)/setup.config; \
			fi; \
			if [ -n "$${svcport}" ]; then \
				echo "TOMCAT_PORT=$${svcport}"             >> $(prefix)/setup.config; \
			else \
				echo "TOMCAT_PORT=9016"                    >> $(prefix)/setup.config; \
			fi; \
			echo "TIMEOUT=60"                              >> $(prefix)/setup.config; \
		else \
			echo "CONSOLE_ENABLE=no"                    >> $(prefix)/setup.config; \
			echo "CONSOLE_PORT="                        >> $(prefix)/setup.config; \
			echo "CONSOLE_ALLOW_ADDRESS="               >> $(prefix)/setup.config; \
			echo "CONSOLE_SSL_CRT="                     >> $(prefix)/setup.config; \
			echo "CONSOLE_SSL_KEY="                     >> $(prefix)/setup.config; \
			echo "CONSOLE_SSL_CHAIN="                   >> $(prefix)/setup.config; \
			echo "JAVA_PATH="                           >> $(prefix)/setup.config; \
			echo "CONSOLE_ADDRESS="                     >> $(prefix)/setup.config; \
			echo "TOMCAT_ADDRESS=127.0.0.1"             >> $(prefix)/setup.config; \
			echo "TOMCAT_PORT=9016"                     >> $(prefix)/setup.config; \
			echo "TIMEOUT=60"                           >> $(prefix)/setup.config; \
		fi; \
		egrep "^LATEST_URL=" $(prefix)/dbupdate_waf >  $(prefix)/conf/dbupdate_waf_url.conf; \
	elif [ $(OVERWRITE) = "yes" -a -e $(prefix)/setup.config ]; then \
		if ! egrep "^SERVER=" $(prefix)/setup.config >/dev/null 2>&1; then \
			sed -i '1s/^/SERVER=APACHE\n/' $(prefix)/setup.config >/dev/null 2>&1; \
		fi; \
		if ! egrep "^CONSOLE_SSL_CHAIN=" $(prefix)/setup.config >/dev/null 2>&1; then \
			if egrep "^admin_service=yes" $(prefix)/conf/$(PRODUCT).ini >/dev/null 2>&1; then \
				ssl_chain=`grep "^[^#].*SSLCertificateChainFile " $(prefix)/conf/httpd.conf.siteguardlite_admin_ssl | sed 's/^.*SSLCertificateChainFile \(.*\)\$$/\1/'`; \
			fi; \
			echo "CONSOLE_SSL_CHAIN=$${ssl_chain}"         >> $(prefix)/setup.config; \
		fi; \
		if ! egrep "^CONSOLE_ADDRESS=" $(prefix)/setup.config >/dev/null 2>&1; then \
			port=`grep "Listen " $(prefix)/conf/httpd.conf.siteguardlite_admin_ssl | sed 's/^Listen \(.*\)$$/\1/;s/^\(.*\):\([0-9]*\)$$/\2/'`; \
			console_addr=`grep "Listen " $(prefix)/conf/httpd.conf.siteguardlite_admin_ssl | sed 's/^Listen \(.*\)$$/\1/;s/^\(.*\):\([0-9]*\)$$/\1/;s/'$${port}'$$//'`; \
			if [ -n "$${console_addr}" ]; then \
				echo "CONSOLE_ADDRESS=$${console_addr}"    >> $(prefix)/setup.config; \
			else \
				echo "CONSOLE_ADDRESS="                    >> $(prefix)/setup.config; \
			fi; \
		fi; \
		if ! egrep "^TOMCAT_ADDRESS=" $(prefix)/setup.config >/dev/null 2>&1; then \
			svchost=`perl -ne 'if(/^\[(.+)\]/){$$svc=$$1;}if(($$svc eq 'admin') && m|^svcport=(.*:)?(.*)|){print "$$1";}' $(prefix)/conf/$(PRODUCT).ini | sed s/:$$//` ;\
			if [ -n "$${svchost}" ]; then \
				echo "TOMCAT_ADDRESS=$${svchost}"          >> $(prefix)/setup.config; \
			else \
				echo "TOMCAT_ADDRESS=127.0.0.1"            >> $(prefix)/setup.config; \
			fi; \
		fi; \
		if ! egrep "^TOMCAT_PORT=" $(prefix)/setup.config >/dev/null 2>&1; then \
			svcport=`perl -ne 'if(/^\[(.+)\]/){$$svc=$$1;}if(($$svc eq 'admin') && m|^svcport=(.*:)?(.*)|){print "$$2";}' $(prefix)/conf/$(PRODUCT).ini` ;\
			if [ -n "$${svcport}" ]; then \
				echo "TOMCAT_PORT=$${svcport}"             >> $(prefix)/setup.config; \
			else \
				echo "TOMCAT_PORT=9016"                    >> $(prefix)/setup.config; \
			fi; \
		fi; \
		if ! egrep "^TIMEOUT=" $(prefix)/setup.config >/dev/null 2>&1; then \
			echo "TIMEOUT=60"                              >> $(prefix)/setup.config; \
		fi; \
	fi

backup-sem-shm-file:
	@ if [ $(OVERWRITE) = "yes" ]; then \
		for f in counter filter license; do \
			if [ -e "$(prefix)/tmp/$${f}.sem" ]; then \
				cp -p $(prefix)/tmp/$${f}.sem $(prefix)/tmp/$${f}.sem.bak; \
			fi; \
		done; \
		for f in counter license; do \
			if [ -e "$(prefix)/tmp/$${f}.shm" ]; then \
				cp -p $(prefix)/tmp/$${f}.shm $(prefix)/tmp/$${f}.shm.bak; \
			fi; \
		done; \
	fi

restore-sem-shm-file:
	@ if [ $(OVERWRITE) = "yes" ]; then \
		for f in counter filter license; do \
			if [ -e "$(prefix)/tmp/$${f}.sem.bak" ]; then \
				mv -f $(prefix)/tmp/$${f}.sem.bak $(prefix)/tmp/$${f}.sem; \
			fi; \
		done; \
		for f in counter license; do \
			if [ -e "$(prefix)/tmp/$${f}.shm.bak" ]; then \
				mv -f $(prefix)/tmp/$${f}.shm.bak $(prefix)/tmp/$${f}.shm; \
			fi; \
		done; \
	fi

install-config:
	@echo "------------------------------------------------------"
	@echo "  Installing configuration files..."
	@echo "------------------------------------------------------"
	-@if [ ! -e $(prefix)/ ]; then mkdir -p $(prefix)/ ; fi
	-@if [ ! -e $(prefix)/bak/ ]; then mkdir $(prefix)/bak/ ; fi
	-@if [ ! -e $(prefix)/conf/ ]; then mkdir $(prefix)/conf/ ; fi
	-@if [ ! -e $(prefix)/conf/waf/ ]; then mkdir $(prefix)/conf/waf/ ; fi
	-@if [ ! -e $(prefix)/conf/ssl/ ]; then mkdir $(prefix)/conf/ssl/ ; fi
	-@if [ ! -e $(prefix)/conf/sync/ ]; then mkdir $(prefix)/conf/sync/ ; fi
	-@if [ ! -e $(prefix)/conf/sync/keys/ ]; then mkdir $(prefix)/conf/sync/keys/ ; fi
	-@if [ ! -e $(prefix)/conf/sync/keys/host ]; then mkdir $(prefix)/conf/sync/keys/host ; fi
	-@if [ ! -e $(prefix)/conf/sync/keys/own ]; then mkdir $(prefix)/conf/sync/keys/own ; fi
	-@if [ "X$(lang)" != "X" ]; then langvar=$(lang) ;\
	elif [ "X`date '+%Z'`" = "XJST" ]; then langvar=ja ;\
	else \
		case "X$${LANG}" in Xja* ) langvar=ja ;; esac ;\
	fi ;\
	if [ "X$${langvar}" = "X" ]; then langvar=en ; fi; \
	cd $(prefix)/conf/en/ ;\
	for f in template_*.{txt,html}; do \
		if [ ! -e ../$$f ]; then  \
			cp ../$${langvar}/$$f ../$$f ; \
		fi; \
	done
	-@if [ ! -e $(prefix)/conf/waf/sig_custom.txt ]; then \
		cp conf/waf/sig_custom_sample.txt $(prefix)/conf/waf/sig_custom.txt ; \
	fi
	-@for e in crt csr key; do \
		if [ -e $(prefix)/conf/ssl/server.$$e ]; then \
			mv $(prefix)/conf/ssl/server.$$e $(prefix)/conf/ssl/server.$$e.old; \
		fi; \
	done
	-@for f in $(DISTFILES_CONFIG); do \
		if [ ! -e $(prefix)/$$f ]; then  \
			cp $$f $(prefix)/$$f ; \
		fi; \
	done
	@cp conf/$(PRODUCT).ini $(prefix)/conf/$(PRODUCT)-orig.ini
	-@perl -p -i.bak -e 's|^suffix=.*|suffix=$(suffix)|;' $(prefix)/conf/$(PRODUCT).ini ;
	-@if [ "X$(adminport)" != "X" ]; then \
		sed -i -e 's/^TOMCAT_PORT=.*/TOMCAT_PORT=$(adminport)/' $(prefix)/setup.config ;\
	fi
	@if ! grep "add_monitor" $(prefix)/conf/dbupdate_waf.conf >/dev/null 2>&1 ; then \
		perl -p -i.bak -e 's|^(use_dbsettings=.*)|$$1\nadd_monitor=no|' $(prefix)/conf/dbupdate_waf.conf 2>&1;\
	fi
	@if ! grep "downloadonly" $(prefix)/conf/dbupdate_waf.conf >/dev/null 2>&1 ; then \
		perl -p -i.bak -e 's|^(add_monitor=.*)|$$1\ndownloadonly=no|' $(prefix)/conf/dbupdate_waf.conf 2>&1;\
	fi
	@if grep "UPDATEURL=" $(prefix)/conf/dbupdate.conf >/dev/null 2>&1 ; then \
		perl -p -i.bak -e 's|^(UPDATEURL=.*)|use_getversion=yes|' $(prefix)/conf/dbupdate.conf 2>&1;\
	fi
	@if ! grep "agent" $(prefix)/conf/$(PRODUCT).ini >/dev/null 2>&1 ; then \
		perl -p -i.bak -e 's|^(account_lock_num=.*)|$$1\nagent=yes|' $(prefix)/conf/$(PRODUCT).ini 2>&1;\
	fi
	@if [ $(OVERWRITE) = "yes" ]; then \
		if [ $(prefix)/databases_waf/header.ini ]; then \
			cp $(prefix)/databases_waf/header.ini $(prefix)/conf/waf/ ;\
		fi \
	fi
	@if [ "X$(SERVER)" = "XAPACHE" ]; then \
		rm -f $(prefix)/conf/nginx.conf.siteguardlite_admin_ssl-template; \
		rm -f $(prefix)/conf/nginx.conf.siteguardlite_add ; \
		rm -f $(prefix)/conf/siteguardlite.conf.nginx ; \
	else \
		rm -f $(prefix)/conf/httpd.conf.siteguardlite_admin_ssl-template; \
		rm -f $(prefix)/conf/httpd.conf.siteguardlite_add ; \
		mv -f $(prefix)/conf/siteguardlite.conf.nginx $(prefix)/conf/siteguardlite.conf ; \
	fi;
	@chmod 400 $(prefix)/conf/ssl/*

inifile=$(prefix)/conf/$(PRODUCT).ini
verup-config:
	-@if [ "X$(lang)" != "X" ]; then langvar=$(lang) ;\
	elif [ "X`date '+%Z'`" = "XJST" ]; then langvar=ja ;\
	else \
		case "X$${LANG}" in Xja* ) langvar=ja ;; esac ;\
	fi ;\
	if [ "X$${langvar}" = "X" ]; then langvar=en ; fi; \
	cd $(prefix) ; \
	if [ "X$(SERVER)" = "XAPACHE" ]; then \
		./Makefile.verup-config -v "Apache${VERSION}-${UPDATE}" --lang $${langvar} $(inifile) $(prefix)/conf/$(PRODUCT)-orig.ini ;\
	else \
		./Makefile.verup-config -v "Nginx${VERSION}-${UPDATE}" --lang $${langvar} $(inifile) $(prefix)/conf/$(PRODUCT)-orig.ini ;\
	fi;

# obsoluted
install-def:
	@echo "------------------------------------------------------"
	@echo "  Installing signature files (Trusted Signature) ..."
	@echo "------------------------------------------------------"
	-@for f in $(DISTFILES_DEF); do \
		if [ ! -e $(prefix)/$$f ]; then  \
			cp -rp $$f $(prefix)/$$f ; \
		fi; \
	done
	-@if [ ! -e $(prefix)/update_waf ]; then \
		cp -rp $(prefix)/databases_waf $(prefix)/update_waf ;\
	fi

install-dir:
	@echo "------------------------------------------------------"
	@echo "  Preparing installation directory($(prefix)) ..."
	@echo "------------------------------------------------------"
	-@if [ ! -e $(prefix) ]; then mkdir -p $(prefix)/ ; fi
	@src=`pwd`; \
	dst=`cd $(prefix);pwd`; \
	if [ "X$${src}" = "X$${dst}" ]; then \
		echo "=========================================================================" ;\
		echo "ERROR: current directory and install directory is the same." ;\
		echo "=========================================================================" ;\
		false ;\
	fi
	@if ! ( echo test > $(prefix)/__writetestfile__ && rm $(prefix)/__writetestfile__ ) ; then \
		echo "=========================================================================" ;\
		echo "ERROR: Cannot write file to [$(prefix)] directory." ;\
		echo "       Normally, please install on root account." ;\
		echo "=========================================================================" ;\
		false ;\
	fi
	@cp misc/get_glibcver $(prefix)/__exectestfile__
	@if [ $(ARCH) = "i386" ]; then \
		if ! file $(prefix)/__exectestfile__ | grep "32-bit" >/dev/null 2>&1 ; then \
			rm -f $(prefix)/__exectestfile__ ;\
			echo "=========================================================================" ;\
			echo "ERROR: Install Package is incorrect." ;\
			echo "       Please use the Install Package for 32bit." ;\
			echo "=========================================================================" ;\
			false ;\
		fi; \
	else \
		if ! file $(prefix)/__exectestfile__ | grep "64-bit" >/dev/null 2>&1 ; then \
			rm -f $(prefix)/__exectestfile__ ;\
			echo "=========================================================================" ;\
			echo "ERROR: Install Package is incorrect." ;\
			echo "       Please use the Install Package for 64bit." ;\
			echo "=========================================================================" ;\
			false ;\
		fi; \
	fi
	@rm -f $(prefix)/__exectestfile__


HTTP_LOGFILES={detect.log,info.log,error.log,form.log}
NOTIFY_LOGFILES={info.log,error.log}
LOGDIRS=http admin notify

install-prog:
	@echo "------------------------------------------------------"
	@echo "  Installing program files to $(prefix) ..."
	@echo "------------------------------------------------------"
	@(cd $(prefix)/ && rm -rf $(INSTALLFILES_BIN) )
	-@(cd $(prefix)/ && rm -rf jre?.?.?_* )
	@tar -cf - $(INSTALLFILES_BIN) | (cd $(prefix)/ && tar -xf -)	
	-@if [ ! -e $(prefix)/tmp/ ]; then mkdir $(prefix)/tmp/ ; chmod 777 $(prefix)/tmp ; fi
	-@if [ ! -e $(prefix)/tmp/login_lock/ ]; then mkdir $(prefix)/tmp/login_lock/ ; chmod 700 $(prefix)/tmp/login_lock ; fi
	-@if [ ! -e $(prefix)/tmp/sync_lock/ ]; then mkdir $(prefix)/tmp/sync_lock/ ; chmod 700 $(prefix)/tmp/sync_lock ; fi
	-@if [ ! -e $(prefix)/tmp/sync_recv/ ]; then mkdir $(prefix)/tmp/sync_recv/ ; chmod 700 $(prefix)/tmp/sync_recv ; fi
	-@if [ ! -e $(prefix)/tmp/sync_send/ ]; then mkdir $(prefix)/tmp/sync_send/ ; chmod 700 $(prefix)/tmp/sync_send ; fi
	-@if [ ! -e $(prefix)/statistics/ ]; then mkdir $(prefix)/statistics ; chmod 777 $(prefix)/statistics ; fi
	-@if [ ! -e $(prefix)/notify/ ]; then mkdir $(prefix)/notify/ ; chmod 777 $(prefix)/notify ; fi
	-@if [ ! -e $(prefix)/notify/detect ]; then mkdir $(prefix)/notify/detect ; chmod 777 $(prefix)/notify/detect ; fi
	-@if [ ! -e $(prefix)/notify/fault ]; then mkdir $(prefix)/notify/fault ; chmod 777 $(prefix)/notify/fault ; fi
	-@if [ ! -e $(prefix)/logs/ ]; then mkdir $(prefix)/logs/ ; fi
	-@cd $(prefix)/logs/ ;\
	for d in $(LOGDIRS); do \
		if [ ! -e $$d ]; then mkdir $$d ; fi ;\
		chmod 755 $$d ; \
		if [ $$d = "http" ]; then \
			for f in $(HTTP_LOGFILES) ; do \
				touch $$d/$$f ;\
				chmod 644 $$d/$$f ;\
			done ;\
		fi ; \
		if [ $$d = "notify" ]; then \
			for f in $(NOTIFY_LOGFILES) ; do \
				touch $$d/$$f ;\
				chmod 644 $$d/$$f ;\
			done ;\
		fi ; \
	done ; \
	for f in dbupdate_waf.log ; do \
		touch $$f ;\
		if [ ! -e $$f.txt ]; then ln -s $$f $$f.txt ; fi ;\
	done 
	-@if [ ! -L $(prefix)/tomcat/logs -a ! -e $(prefix)/tomcat/logs ]; then ln -s ../logs/admin $(prefix)/tomcat/logs; fi
	@perl -p -i.bak -e 's|\@PREFIX\@|$(prefix)|;s|^prefix\s*=.*|prefix=$(prefix)|;s|^suffix\s*=*.*|suffix=$(suffix)|;s|^PRODUCT=.*|PRODUCT=$(PRODUCT)|;s|\@SUFFIX\@|$(suffix)|g;s|\@PRODUCT\@|$(PRODUCT)|g;s|\@PRODUCT_NAME\@|$(PRODUCT_NAME)|g;s|\@PRODUCT_NAME_SHORT\@|$(PRODUCT_NAME_SHORT)|g;s|\@PREFIX\@|$(prefix)|g' \
		$(prefix)/rc.$(PRODUCT)_http \
		$(prefix)/rc.$(PRODUCT)_admin \
		$(prefix)/rc.$(PRODUCT)_notify \
		$(prefix)/$(PRODUCT)_admin.command \
		$(prefix)/$(PRODUCT)_notify.command \
		$(prefix)/$(PRODUCT)_admin.service \
		$(prefix)/$(PRODUCT)_notify.service \
		$(prefix)/$(PRODUCT)_statistics.sh \
		$(prefix)/dbupdate_waf \
		$(prefix)/get_version \
		$(prefix)/sync_send.sh \
		$(prefix)/Makefile \
		$(prefix)/Makefile.vars \
		$(prefix)/misc/logrotate.$(PRODUCT);
	@perl -p -i.bak -e 's|\@PREFIX\@|$(prefix)|' \
		$(prefix)/conf/$(PRODUCT).conf \
		$(prefix)/conf/$(PRODUCT).conf.nginx
	@perl -p -i.bak -e 's|PREFIX=.*|PREFIX=$(prefix)|' $(prefix)/set_secontext.sh
	@if [ ! -x /usr/bin/perl -a -x /usr/local/bin/perl ]; then \
		perl -p -i.bak -e 's|#!/usr/bin/perl|#!/usr/local/bin/perl|;' $(prefix)/Makefile.verup-config $(prefix)/waf_sig_merge.pl ; \
	fi

STOP_SERVICES=admin notify
START_SERVICES=admin notify

install-initscript:
	@echo "------------------------------------------------------"
	@echo "  Installing initscripts ..."
	@echo "------------------------------------------------------"
	-@if [ "X$$UID" = "X0" ]; then \
		cd $(prefix)/ ;\
		for svc in $(START_SERVICES); do \
			if which systemctl >/dev/null 2>&1; then \
				if [ -e /etc/systemd/system -a -e $(prefix)/$(PRODUCT)_$${svc}.service ]; then \
					systemctl disable $(PRODUCT)_$${svc} >/dev/null 2>&1; \
					cp $(prefix)/$(PRODUCT)_$${svc}.service /etc/systemd/system/; \
				fi;\
			else \
				if [ -e /etc/init.d -a -e $(prefix)/rc.$(PRODUCT)_$${svc} ]; then  \
					ln -sf $(prefix)/rc.$(PRODUCT)_$${svc} /etc/init.d/$(PRODUCT)$(suffix)_$${svc} ; \
				fi; \
			fi; \
		done ;\
	else \
		echo "### initscript is not installed because of no root privilege. ###" ;\
	fi

install-autoupdate:
	@if (EDITOR=cat;export EDITOR;VISUAL=cat;export VISUAL;crontab -l > $(prefix)/crontab_tmp 2>/dev/null); then \
		touch $(prefix)/crontab_tmp; \
	fi
	@if ! grep "cd $(prefix);./dbupdate_waf" $(prefix)/crontab_tmp >/dev/null; then \
		if [ -f $(prefix)/crontab_tmp.autoupdate ]; then \
			cat $(prefix)/crontab_tmp.autoupdate >> $(prefix)/crontab_tmp; \
			crontab $(prefix)/crontab_tmp; \
			rm $(prefix)/crontab_tmp.autoupdate; \
		fi \
	fi
	@rm $(prefix)/crontab_tmp;

uninstall-autoupdate:
	@if (EDITOR=cat;export EDITOR;VISUAL=cat;export VISUAL;crontab -l | grep "cd $(prefix);./dbupdate_waf" > $(prefix)/crontab_tmp.autoupdate 2>/dev/null); then \
		(EDITOR=cat;export EDITOR;VISUAL=cat;export VISUAL;crontab -e 2>/dev/null) | sed -e '\|cd *$(prefix);./dbupdate_waf$$|d' | crontab - ; \
	fi

install-statistics-cron:
	@if (EDITOR=cat;export EDITOR;VISUAL=cat;export VISUAL;crontab -l > $(prefix)/crontab_tmp 2>/dev/null); then \
		touch $(prefix)/crontab_tmp; \
	fi
	@if ! grep "cd $(prefix);./$(PRODUCT)_statistics.sh" $(prefix)/crontab_tmp >/dev/null; then \
		echo "0 * * * * cd $(prefix);./$(PRODUCT)_statistics.sh" >> $(prefix)/crontab_tmp; \
		crontab $(prefix)/crontab_tmp; \
	fi
	@rm $(prefix)/crontab_tmp;

uninstall-statistics-cron:
	@(EDITOR=cat;export EDITOR;VISUAL=cat;export VISUAL;crontab -l 2>/dev/null) \
		| sed -e '\|cd *$(prefix);./$(PRODUCT)_statistics.sh$$|d' \
		| crontab - ;

stop:
	@echo "------------------------------------------------------"
	@echo "  Stopping running services..."
	@echo "------------------------------------------------------"
	-@for svc in $(STOP_SERVICES); do \
		if $(prefix)/rc.$(PRODUCT)_$${svc} status >/dev/null 2>&1; then \
			$(prefix)/rc.$(PRODUCT)_$${svc} stop ;\
			sleep .1 ;\
		fi ;\
	done
	@sleep 2

start:
	@echo "------------------------------------------------------"
	@echo "  Starting services..."
	@echo "------------------------------------------------------"
	-@for svc in $(START_SERVICES); do \
		if egrep "^$${svc}_service=yes" $(prefix)/conf/$(PRODUCT).ini >/dev/null 2>&1; then \
			sleep .1 ;\
			if which systemctl >/dev/null 2>&1; then \
				if ! systemctl list-unit-files -t service | grep "$(PRODUCT)_$${svc}.service.*enabled" >/dev/null; then \
					systemctl enable $(PRODUCT)_$${svc}.service >/dev/null 2>&1; \
				fi;\
			else \
				if [ -x /usr/sbin/update-rc.d ]; then \
					/usr/sbin/update-rc.d $(PRODUCT)$(suffix)_$${svc} defaults;\
				elif (/sbin/chkconfig --del $(PRODUCT)$(suffix)_$${svc} ; /sbin/chkconfig --add $(PRODUCT)$(suffix)_$${svc} ; /sbin/chkconfig $(PRODUCT)$(suffix)_$${svc} on); then \
					true;\
				else \
					echo "## cannot setup initscript(/etc/init.d/$(PRODUCT)$(suffix)_$${svc}) using chkconfig/update-rc.d . " ;\
				fi ;\
			fi ;\
			if ! $(prefix)/rc.$(PRODUCT)_$${svc} status >/dev/null 2>&1; then \
				$(prefix)/rc.$(PRODUCT)_$${svc} start ;\
			fi ;\
		elif egrep "^$${svc}_service=no" $(prefix)/conf/$(PRODUCT).ini >/dev/null 2>&1; then \
			if which systemctl >/dev/null 2>&1; then \
				if ! systemctl list-unit-files -t service | grep "$(PRODUCT)_$${svc}.service.*disabled" >/dev/null; then \
					systemctl disable $(PRODUCT)_$${svc}.service >/dev/null 2>&1; \
				fi;\
			else \
				if [ -x /usr/sbin/update-rc.d ]; then \
					/usr/sbin/update-rc.d -f $(PRODUCT)$(suffix)_$${svc} remove;\
				elif (/sbin/chkconfig --del $(PRODUCT)$(suffix)_$${svc} ; /sbin/chkconfig --add $(PRODUCT)$(suffix)_$${svc} ; /sbin/chkconfig $(PRODUCT)$(suffix)_$${svc} off); then \
					true;\
				else \
					echo "## cannot setup initscript(/etc/init.d/$(PRODUCT)$(suffix)_$${svc}) using chkconfig/update-rc.d . " ;\
				fi ;\
			fi ;\
		fi ;\
	done

httpstop:
	@echo stopping web server ...
	@./rc.siteguardlite_http stop
	@if [ "X$(SERVER)" = "XAPACHE" ]; then \
		procname=$(APACHEBIN); \
	else \
		procname=$(NGINXBIN); \
	fi; \
	for n in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20; do \
		if [ $${n} = 20 ]; then \
			break; \
		fi; \
		sleep 1; \
		if ! pidof $${procname} >/dev/null 2>&1; then \
			break; \
		fi; \
	done; \
	if [ $${n} = 20 ]; then \
		echo "ERROR: failed stop web server." ;\
		exit 1; \
	fi
	@for f in counter filter license; do \
		if [ -e "tmp/$${f}.sem" ]; then \
			ipcrm -S `cat tmp/$${f}.sem`; \
			rm -f tmp/$${f}.sem; \
		fi; \
	done;
	@for f in counter license; do \
		if [ -e "tmp/$${f}.shm" ]; then \
			ipcrm -M `cat tmp/$${f}.shm`; \
			rm -f tmp/$${f}.shm; \
		fi; \
	done;

httpstart:
	@echo starting web server ...
	@./make_conf_log.sh "START" >> logs/http/conf.log 2>&1
	@./rc.siteguardlite_http start
	@sleep 1

httprestart: httpstop httpstart

reconfig:
	@echo "------------------------------------------------------"
	@echo "  Reconfig services..."
	@echo "------------------------------------------------------"
	@if [ "X$(SERVER)" = "XAPACHE" ]; then \
		$(APACHECTL) graceful; \
	else \
		$(NGINXBIN) -s reload; \
	fi; 
	./rc.$(PRODUCT)_notify reload
	@./make_conf_log.sh "RECONFIG" >> logs/http/conf.log 2>&1

# restart-service: stop-service start-service

restart: stop start

# obsoluted
restart-$(PRODUCT): restart

uninstall-services:
	@echo "------------------------------------------------------"
	@echo "  Uninstalling services..."
	@echo "------------------------------------------------------"
	-@for svc in admin notify; do \
		if which systemctl >/dev/null 2>&1; then \
			if systemctl list-unit-files -t service | grep "$(PRODUCT)_$${svc}.service.*enabled" >/dev/null; then \
				systemctl disable $(PRODUCT)_$${svc}.service >/dev/null 2>&1; \
			fi; \
			if [ -f /etc/systemd/system/$(PRODUCT)_$${svc}.service ]; then \
				rm /etc/systemd/system/$(PRODUCT)_$${svc}.service; \
			fi; \
		else \
			if [ -f /etc/init.d/$(PRODUCT)$(suffix)_$${svc} ]; then\
				if [ -x /usr/sbin/update-rc.d ]; then \
					/usr/sbin/update-rc.d -f $(PRODUCT)$(suffix)_$${svc} remove;\
				fi;\
				if [ -x /sbin/chkconfig ]; then \
					/sbin/chkconfig --del $(PRODUCT)$(suffix)_$${svc} ;\
				fi;\
				if [ -f /etc/init.d/$(PRODUCT)$(suffix)_$${svc} -o -L /etc/init.d/$(PRODUCT)$(suffix)_$${svc} ]; then \
					rm /etc/init.d/$(PRODUCT)$(suffix)_$${svc} ;\
				fi;\
			fi;\
		fi;\
	done

usage:
	@echo "usage: make [install]"
	@echo "  target:"
	@echo "    install        : install product"
	@echo "  option: "
	@echo "    prefix=[dir]   : set install directory"
	@echo "    adminport=[num]: set port number of administrator(default: 9016)"
	@echo "example:"
	@echo "  make install"
	@echo "      (default installation)"
	@echo "  make prefix=$(prefix)2 adminport=10014 install"
	@echo "      (install the second $(PRODUCT) package on the same machine.)"

change-owner:
	-@if [ "X$$UID" = "X0" ]; then \
		(find $(prefix) -path "$(prefix)/tmp" -prune -o -exec chown -h root.root {} \;); \
	fi

install-itr: create-setup-config install-dir backup-sem-shm-file stop restore-sem-shm-file install-prog install-def install-config verup-config install-initscript install-autoupdate statistics-update statistics-clear install-statistics-cron change-owner succeeded

install:
	@overwrite="no"; \
	if [ -e $(prefix)/ ]; then \
		if [ "X$(SERVER)" = "XAPACHE" ]; then \
			if [ -e $(prefix)/setup.config ]; then \
				if egrep "^APACHE_CONFFILE=.+" $(prefix)/setup.config >/dev/null 2>&1; then \
					if egrep "^APACHE_TYPE=.+" $(prefix)/setup.config >/dev/null 2>&1; then \
						if egrep "^APACHECTL=.+" $(prefix)/setup.config >/dev/null 2>&1; then \
							if egrep "^APACHEBIN=.+" $(prefix)/setup.config >/dev/null 2>&1; then \
								overwrite="yes"; \
							fi; \
						fi; \
					fi; \
				fi; \
			elif [ -e $(prefix)/Makefile -a -e $(prefix)/conf/$(PRODUCT).ini ]; then \
				if egrep "^APACHE_CONFFILE=.+" $(prefix)/Makefile >/dev/null 2>&1; then \
					if egrep "^APACHE_TYPE=.+" $(prefix)/Makefile >/dev/null 2>&1; then \
						if egrep "^APACHECTL=.+" $(prefix)/Makefile >/dev/null 2>&1; then \
							if egrep "^APACHEBIN=.+" $(prefix)/Makefile >/dev/null 2>&1; then \
								overwrite="yes"; \
							fi; \
						fi; \
					fi; \
				fi; \
			fi; \
		else \
			if [ -e $(prefix)/setup.config ]; then \
				if egrep "^NGINX_CONFFILE=.+" $(prefix)/setup.config >/dev/null 2>&1; then \
					if egrep "^NGINX_TYPE=.+" $(prefix)/setup.config >/dev/null 2>&1; then \
						if egrep "^NGINXBIN=.+" $(prefix)/setup.config >/dev/null 2>&1; then \
							overwrite="yes"; \
						fi; \
					fi; \
				fi; \
			fi; \
		fi; \
	fi; \
	$(MAKE) --warn-undefined-variable --no-print-directory SERVER=$(SERVER) OVERWRITE=$${overwrite} install-itr;


# obsoluted
install-full: install

remove_httpd_conf:
	@echo "------------------------------------------------------"
	@if [ "X$(SERVER)" = "XAPACHE" ]; then \
		echo "  Remove setting from httpd.conf"; \
	else \
		echo "  Remove setting from nginx.conf"; \
	fi
	@echo "------------------------------------------------------"
	@$(prefix)/setup.sh --remove
 
succeeded:
	@if [ $(OVERWRITE) = "no" ]; then \
		if [ "X$(SERVER)" = "XAPACHE" ]; then \
			echo ;\
			echo "------------------------------------------------------" ;\
			echo "  Install succeeded!" ;\
			echo ;\
			echo "  Please run the following command" ;\
			echo "  in order to setup apache" ;\
			echo "  # cd $(prefix)" ;\
			echo "  # ./setup.sh" ;\
			echo "------------------------------------------------------" ;\
		else \
			echo ;\
			echo "------------------------------------------------------" ;\
			echo "  Install succeeded!" ;\
			echo ;\
			echo "  Please run the following command" ;\
			echo "  1. in order to add SiteGuard Lite module into nginx" ;\
			echo "  # cd <nginx source dir>" ;\
			echo "  # ./configure \\" ;\
			echo "    --add-module=$(prefix)/nginx \\" ;\
			echo "    --with-http_ssl_module \\" ;\
			echo "    ...<with other params>" ;\
			echo "  # make" ;\
			echo "  # make install" ;\
			echo ;\
			echo "  2. in order to setup nginx" ;\
			echo "  # cd $(prefix)" ;\
			echo "  # ./setup.sh" ;\
			echo "------------------------------------------------------" ;\
		fi; \
	else \
		if [ "X$(SERVER)" = "XAPACHE" ]; then \
			option="--batch"; \
		else \
			option="--batch-no-restart"; \
		fi; \
		if (cd $(prefix); $(prefix)/setup.sh $${option}); then \
			if [ "X$(SERVER)" = "XAPACHE" ]; then \
				echo "------------------------------------------------------" ;\
				echo "  Update succeeded!" ;\
				echo "------------------------------------------------------" ;\
			else \
				echo "------------------------------------------------------" ;\
				echo "  Update succeeded!" ;\
				echo ;\
				echo "  Please run the following command" ;\
				echo "  1. in order to add SiteGuard Lite module into nginx" ;\
				echo "  # cd <nginx source dir>" ;\
				echo "  # ./configure \\" ;\
				echo "    --add-module=$(prefix)/nginx \\" ;\
				echo "    --with-http_ssl_module \\" ;\
				echo "    ...<with other params>" ;\
				echo "  # make" ;\
				echo "  # make install" ;\
				echo "  # make upgrade" ;\
				echo "------------------------------------------------------" ;\
			fi; \
		else \
			echo "------------------------------------------------------" ;\
			echo "  Update failed!" ;\
			echo "------------------------------------------------------" ;\
		fi; \
	fi

uninstall: remove_httpd_conf stop uninstall-autoupdate uninstall-services
	@echo "------------------------------------------------------"
	@echo "  Uninstall succeeded!"
	@echo "  If you need, please remove $(prefix)."
	@echo "------------------------------------------------------"

# obsoluted
uninstall-full: uninstall

clean: buildtools-setup
	-rm -f *.o core* $(TARGET_BIN)
	@for dir in $(SUBDIRS) ; do \
		echo Making clean in $$dir; \
		(cd $$dir; $(MAKE) $(MFLAGS) clean) || exit 1; \
	done
	-rm -rf $(BUILD_DEST)
	-rm -f external/md5/md5.o

test:
	(cd test-scripts && ./test.pl)


printenv:
	export PATH=$(PATH) ; /usr/bin/printenv

bindist_itr:
	if [ ! -e $(TOPDIR)/databases_waf/ ];then mkdir -p $(TOPDIR)/databases_waf; fi
	if [ "X$(SERVER)" = "XAPACHE" ]; then \
		scp dev:/var/www/html/mksig/latest/lite/sig_official_base.txt $(TOPDIR)/databases_waf/;\
		scp dev:/var/www/html/mksig/latest/lite/sig_official_comment.en.txt $(TOPDIR)/databases_waf/;\
		scp dev:/var/www/html/mksig/latest/lite/sig_official_comment.ja.txt $(TOPDIR)/databases_waf/;\
		scp dev:/var/www/html/mksig/latest/lite/sig_official_date.txt $(TOPDIR)/databases_waf/;\
		scp dev:/var/www/html/mksig/latest/lite/header.ini $(TOPDIR)/databases_waf/;\
	else \
		scp dev:/var/www/html/mksig/latest/nw/sig_official_base.txt $(TOPDIR)/databases_waf/;\
		scp dev:/var/www/html/mksig/latest/nw/sig_official_comment.en.txt $(TOPDIR)/databases_waf/;\
		scp dev:/var/www/html/mksig/latest/nw/sig_official_comment.ja.txt $(TOPDIR)/databases_waf/;\
		scp dev:/var/www/html/mksig/latest/nw/sig_official_date.txt $(TOPDIR)/databases_waf/;\
		scp dev:/var/www/html/mksig/latest/nw/header.ini $(TOPDIR)/databases_waf/;\
	fi
	cp $(TOPDIR)/databases_waf/* $(TOPDIR)/conf/waf/
	cp $(TOPDIR)/conf/waf/sig_official_base.txt $(TOPDIR)/conf/waf/sig_official.txt
	if [ ! -e packages/ ];then mkdir -p $(BUILD_DEST)/packages; fi
	rm -rf $(DISTDIR_BIN)$(UPDATE_SUFFIX).tar.gz $(BUILD_DEST)/packages/$(DISTDIR_BIN)$(UPDATE_SUFFIX)-old.tar.gz $(BUILD_DEST)/packages/$(DISTDIR_BIN)/ $(DISTDIR_BIN)/
	if [ -f packages/$(DISTDIR_BIN)$(UPDATE_SUFFIX).tar.gz ];then mv -f $(BUILD_DEST)/packages/$(DISTDIR_BIN)$(UPDATE_SUFFIX).tar.gz $(BUILD_DEST)/packages/$(DISTDIR_BIN)$(UPDATE_SUFFIX)-old.tar.gz; fi
	mkdir -p $(DISTDIR_BIN)/
	cp -rp --parents $(DISTFILES_BIN_COPY) $(DISTFILES_CONFIG) $(DISTFILES_DEF) $(DISTDIR_BIN)/
	cp -rp $(SRC_COMPONENTS) $(DISTDIR_BIN)/
	cp conf/expire.txt.orig $(DISTDIR_BIN)/conf/expire.txt
	cp conf/expire.txt.orig $(DISTDIR_BIN)/conf/
	cp conf/license.txt.trial $(DISTDIR_BIN)/conf/license.txt
	cp conf/license.txt.trial $(DISTDIR_BIN)/conf/
	mkdir $(DISTDIR_BIN)/logs
	rm -rf $(DISTDIR_BIN)/conf/virusgw.ini
	rm -rf $(DISTDIR_BIN)/tomcat/{lib_myfaces_src,temp/safeToDelete.tmp,logs,work,webapps/{ROOT,examples,host-manager,manager,docs,agent/{build,src,testsrc,.metadata,.settings,.classpath},jp_secure/{build,src,testsrc,.metadata,.settings,.classpath}}}
	rm $(DISTDIR_BIN)/misc/*.c
	cp -p rc.$(PRODUCT)_http $(DISTDIR_BIN)/rc.$(PRODUCT)_http
	cp -p rc.$(PRODUCT)_admin $(DISTDIR_BIN)/rc.$(PRODUCT)_admin
	cp -p rc.$(PRODUCT)_notify $(DISTDIR_BIN)/rc.$(PRODUCT)_notify
	cp -p $(PRODUCT)_admin.command $(DISTDIR_BIN)/$(PRODUCT)_admin.command
	cp -p $(PRODUCT)_notify.command $(DISTDIR_BIN)/$(PRODUCT)_notify.command
	cp -p $(PRODUCT)_admin.service $(DISTDIR_BIN)/$(PRODUCT)_admin.service
	cp -p $(PRODUCT)_notify.service $(DISTDIR_BIN)/$(PRODUCT)_notify.service
	if [ "X$(SERVER)" = "XAPACHE" ]; then \
		rm -rf $(DISTDIR_BIN)/nginx; \
		rm -f $(DISTDIR_BIN)/conf/dbupdate_waf_url.conf.nginx; \
	else \
		cp -p setup.config.nginx $(DISTDIR_BIN)/setup.config; \
		cp -p conf/dbupdate_waf_url.conf.nginx $(DISTDIR_BIN)/conf/dbupdate_waf_url.conf; \
		rm -rf $(DISTDIR_BIN)/modules; \
	fi;
	perl -p -i -e 's|^BUILD\s*=.*|BUILD=$(BUILD)|;' $(DISTDIR_BIN)/{Makefile,Makefile.vars} ;\
	tar --owner=root --group=root -zcvf $(DISTDIR_BIN)$(UPDATE_SUFFIX).tar.gz  -C $(dir $(DISTDIR_BIN)) $(notdir $(DISTDIR_BIN))
	mv $(DISTDIR_BIN)$(UPDATE_SUFFIX).tar.gz $(BUILD_DEST)/packages/

bindist:
	$(MAKE) VERSION=$(VERSION) BUILD= bindist_itr

rpm_itr: bindist_itr
	if [ ! -e var ];then mkdir var; fi
	if [ ! -e var/tmp ];then ln -s .. var/tmp; fi
	sed -e 's/@VERSION@/$(VERSION_DOT)/;s/@RELEASE@/$(UPDATE)/;s/@SERVER_NAME@/${SERVER_NAME}/;s/@ARCH@/$(ARCH)/;' $(PRODUCT).spec.in > $(PRODUCT).spec
	$(RPMBUILD) -bb \
		--define "_rpmdir `pwd`/$(BUILD_DEST)/packages" \
		--define "image_root `pwd`/$(BUILD_DEST)/image/" \
		--define "_tmppath /var/tmp" \
		--nodeps \
		$(PRODUCT).spec

	-rm -rf  release/rpm_diff_dst/
	mkdir    release/rpm_diff_dst
	cd       release/rpm_diff_dst && (rpm2cpio ../packages/$(DISTFILE_RPM) | cpio -id --quiet)
	diff -ru $(subst image,rpm_diff_dst, $(DISTDIR_BIN)) $(DISTDIR_BIN)
# diff -ru release/rpm_diff_dst release/image

rpm:
	$(MAKE) VERSION=$(VERSION) BUILD= rpm_itr

diag-rm:
	-rm -rf diag

diag: diag-rm
	mkdir diag
	-echo "Date:" `(LANG=C;date '+%Y/%m/%d(%a) %H:%M:%S %z(%Z)') 2>&1` >>diag/version.txt
	-if [ "X$(SERVER)" = "XAPACHE" ]; then \
		servertype=$(APACHE_TYPE); \
	else \
		servertype=$(NGINX_TYPE); \
	fi; \
	if [ "X$(UPDATE)" = "X0" ]; then \
		echo "Version: $(VERSION) build $(BUILD) ($(VERSION_DOT) [$${servertype}])"  >>diag/version.txt;\
	else \
		echo "Version: $(VERSION) build $(BUILD) ($(VERSION_DOT) Update $(UPDATE) [$${servertype}])"  >>diag/version.txt;\
	fi;
	-echo "Distribution:" `(lsb_release -d  2>/dev/null || (cd /etc; fgrep -H '' *-release *_version *-version 2>/dev/null)) |  perl -pe 's/^Description:\s*//'  2>&1` >>diag/version.txt
	-echo "OS:" `uname -a 2>&1` >>diag/version.txt
	-echo "glibc:" `misc/get_glibcver 2>&1` >> diag/version.txt
	-echo "Whoami:" `whoami` >> diag/version.txt
	-echo "CurrentDir:" `pwd 2>&1` >> diag/version.txt
	-(perl Makefile.verup-config --diff conf/$(PRODUCT).ini conf/$(PRODUCT)-orig.ini > conf/$(PRODUCT)-diff.ini 2>&1)
	mkdir -p diag/logs
	mkdir -p diag/logs/http
	-for logtype in error detect info form; do \
		tail -1000 logs/http/$${logtype}.log > diag/logs/http/$${logtype}.log 2>&1; \
	done
	-tail -5000 logs/http/conf.log > diag/logs/http/conf.log 2>&1
	-tar -cvf - conf/ | (cd diag && tar -xvf -)
	mkdir -p diag/tmp/login_lock
	-(cd tmp && tar -cvf - login_lock/) | (cd diag/tmp && tar -xvf -)
	mkdir -p diag/tmp/sync_lock
	-(cd tmp && tar -cvf - sync_lock/) | (cd diag/tmp && tar -xvf -)
	mkdir -p diag/tmp/sync_recv
	-(cd tmp && tar -cvf - sync_recv/) | (cd diag/tmp && tar -xvf -)
	mkdir -p diag/tmp/sync_send
	-(cd tmp && tar -cvf - sync_send/) | (cd diag/tmp && tar -xvf -)
	-for semfile in license.shm license.sem filter.sem counter.shm counter.sem; do \
		cp tmp/$${semfile} diag/tmp/$${semfile} 2>&1; \
	done
	mkdir -p diag/logs/admin
	-tail -5000 logs/admin/catalina.out > diag/logs/admin/catalina.out 2>&1
	-tail -1000 logs/admin/localhost_access_log.txt > diag/logs/admin/localhost_access_log.txt 2>&1
	-tail -1000 logs/http/admin-ssl-error.log > diag/logs/http/admin-ssl-error.log 2>&1
	-tail -1000 logs/http/admin-ssl-access.log > diag/logs/http/admin-ssl-access.log 2>&1
	-tail -1000 logs/dbupdate_waf.log > diag/logs/dbupdate_waf.log 2>&1
	-tail -1000 logs/dbupdate_waf.log.txt > diag/logs/dbupdate_waf.log.txt 2>&1
	-tail -1000 logs/dbupdate_waf_err.log > diag/logs/dbupdate_waf_err.log 2>&1
	-tail -1000 logs/dbupdate_waf_last_result.txt > diag/logs/dbupdate_waf_last_result.txt 2>&1
	-tail -1000 logs/get_version_result.txt > diag/logs/get_version_result.txt 2>&1
	-tail -1000 logs/get_header_result.txt > diag/logs/get_header_result.txt 2>&1
	mkdir -p diag/logs/admin/siteguardlite
	-tail -1000 logs/admin/siteguardlite/info.log > diag/logs/admin/siteguardlite/info.log 2>&1
	-tail -1000 logs/admin/siteguardlite/error.log > diag/logs/admin/siteguardlite/error.log 2>&1
	-tail -1000 logs/admin/siteguardlite/operation.log > diag/logs/admin/siteguardlite/operation.log 2>&1
	-tail -1000 logs/admin/siteguardlite/syncSend.log > diag/logs/admin/siteguardlite/syncSend.log 2>&1
	-tail -1000 logs/admin/siteguardlite/syncRecv.log > diag/logs/admin/siteguardlite/syncRecv.log 2>&1
	-tail -1000 logs/admin/siteguardlite/syncRecvConf.log > diag/logs/admin/siteguardlite/syncRecvConf.log 2>&1
	mkdir -p diag/logs/notify
	-tail -1000 logs/notify/error.log > diag/logs/notify/error.log 2>&1
	-tail -1000 logs/notify/info.log > diag/logs/notify/info.log 2>&1
	-ls -alRrt > diag/ls.txt 2>&1
	-find . > diag/find.txt 2>&1
	-cp setup.config diag/setup.config 2>&1
	mkdir diag/system
	-printenv > diag/system/printenv.txt 2>&1
	-(cd /; tar -cvf - etc/{*release,logrotate.d/,selinux/config,grub.conf,fstab,nsswitch.conf,resolv.conf}) | (cd diag/system && tar -xvf -)
	-ls -alrt /etc > diag/system/ls_etc.txt 2>&1
	-ls -alrt /etc/rc.d/rc?.d > diag/system/ls_etc_rc.d.txt 2>&1
	-ls -alrt /var/log > diag/system/ls_var_log.txt 2>&1
	-ls -al /proc > diag/system/ls_proc.txt 2>&1
	-du -k > diag/system/du_k.txt 2>&1
	-df -k > diag/system/df_k.txt 2>&1
	-mount > diag/system/mount.txt 2>&1
	-ps auxww > diag/system/ps_auxww.txt 2>&1
	-ps -efl > diag/system/ps_efl.txt 2>&1
	-(export TERM=vt100; top n 1 b) > diag/system/top.txt 2>&1
	-free > diag/system/free.txt 2>&1
	-objdump -T /lib/ld-linux.so.2 > diag/system/ld-linux.so.2_objdump-T.txt 2>&1
	-dmesg > diag/system/dmesg.txt 2>&1
	-journalctl --dmesg > diag/system/journalctl_dmesg.txt 2>&1
	-last > diag/system/last.txt 2>&1
	-rpm -qa --qf '%{name}-%{version}-%{release}.%{arch}\n' |sort > diag/system/rpm.txt 2>&1
	-dpkg -l > diag/system/dpkg_l.txt 2>&1
	-crontab -l > diag/system/crontab.txt 2>&1
	-hostname  >diag/system/hostname.txt 2>&1
	-ifconfig -a >diag/system/ifconfig.txt 2>&1
	-iptables-save >diag/system/iptables-save.txt 2>&1
	-netstat -anp >diag/system/netstat_anp.txt 2>&1
	-netstat -rn >diag/system/netstat_rn.txt 2>&1
	-ss -anp >diag/system/ss_anp.txt 2>&1
	-ip route show all >diag/system/ip_route_show_all.txt 2>&1
	-sar -A >diag/system/sar.txt 2>&1
	-sestatus >diag/system/sestatus.txt 2>&1
	-brctl show >diag/system/brctl_show.txt 2>&1
	-lspci > diag/system/lspci.txt 2>&1
	-lsusb > diag/system/lsusb.txt 2>&1
	-lsscsi > diag/system/lsscsi.txt 2>&1
	-lsof > diag/system/lsof.txt 2>&1
	-cp /var/log/sa/sar`date -d "1 days ago" +%d` diag/system/ 2>&1
	-arp -a > diag/system/arp_a.txt 2>&1
	-ip n > diag/system/ip_n.txt 2>&1
	-for corefile in `(ls -rt core core.* databases/core databases/core.* | tail -5) 2>/dev/null`;  do \
		misc/core-trace $${corefile} ;\
	done > diag/system/core-trace.txt 2>&1
	mkdir diag/system/proc
	-find /proc/{config.gz,cpuinfo,cmdline,devices,interrupts,ioports,iomem,meminfo,modules,pci,version,net,sys,sysvipc,version} -type d -exec mkdir "diag/system/{}" \;
	-find /proc/{config.gz,cpuinfo,cmdline,devices,interrupts,ioports,iomem,meminfo,modules,pci,version,net,sys,sysvipc,version} \! -path /proc/sys/kernel/dump/\* -a \! -type d -exec cp -p "{}" "diag/system/{}" \;
	-tail -1000 /var/log/messages > diag/system/var_log_messages.txt 2>&1
	-ipcs -s > diag/system/ipcs_s.txt 2>&1
	-ipcs -m > diag/system/ipcs_m.txt 2>&1
	mkdir diag/statistics
	-cp statistics/*cur_*summary.txt diag/statistics/ 2>&1
	tar -zcvf diag.tar.gz diag
	@echo "===Diagnose information file(diag.tar.gz) is generated.==="

BACKUP_FILE=./backup.tar.gz
BACKUP_LIST=./backup_list
backup:
	@tar -zcvf $(BACKUP_FILE) conf databases_waf >/dev/null
	@echo "===Backup file(backup.tar.gz) is generated.==="

restore:
	@if [ ! -e $(BACKUP_FILE) ]; then \
		echo "restore: error not exist $(BACKUP_FILE)."; \
		exit 1; \
	fi;
	@tar -ztvf $(BACKUP_FILE) > $(BACKUP_LIST);
	@if ! grep "conf/siteguardlite.ini" $(BACKUP_LIST) >/dev/null; then echo "restore: error invalid backup file."; exit 1; fi
	@if ! grep "databases_waf" $(BACKUP_LIST) >/dev/null; then echo "restore: error invalid backup file."; exit 1; fi
	@(if [ ! -d restore_tmp ]; then mkdir restore_tmp; fi; cd restore_tmp; tar -xvzf ../$(BACKUP_FILE) conf/siteguardlite.ini >/dev/null; \
	if [ "X$(SERVER)" = "XAPACHE" ]; then \
		if ! grep "version=Apache${VERSION}-${UPDATE}" conf/siteguardlite.ini >/dev/null ; then \
			echo "restore: error invalid version."; \
			cd ..; rm -rf restore_tmp; \
			exit 1; \
		fi; \
	else \
		if ! grep "version=Nginx${VERSION}-${UPDATE}" conf/siteguardlite.ini >/dev/null ; then \
			echo "restore: error invalid version."; \
			cd ..; rm -rf restore_tmp; \
			exit 1; \
		fi; \
	fi; \
	cd ..; rm -rf restore_tmp)
	@rm -rf conf databases_waf
	@tar -zxvf $(BACKUP_FILE) >/dev/null
	@$(MAKE) reconfig
	@echo "===Restore succeeded.==="

resetadmin:
	@echo "------------------------------------------------------"
	@echo "  reset admin account"
	@echo "------------------------------------------------------"
	@if [ -e conf/$(PRODUCT).htdigest.org ]; then \
		cp conf/$(PRODUCT).htdigest.org conf/$(PRODUCT).htdigest ; \
		echo "done." ; \
	else \
		echo "failed." ; \
	fi

clearfilterdb:
	@echo "------------------------------------------------------"
	@echo "  clear filter db"
	@echo "------------------------------------------------------"
	@./filter_util --del $(del_addrs)
	@echo "done."

cleartmpfiles_itr:
	@echo "------------------------------------------------------"
	@echo "  clear tmp files"
	@echo "------------------------------------------------------"
	@echo "removing tmp files ..."
	@rm -f tmp/proxytmp*
	@echo "done."

cleartmpfiles: httpstop cleartmpfiles_itr httpstart

statistics-update:
	@(cd $(prefix); ./$(PRODUCT)_statistics.sh >/dev/null 2>&1;)

statistics-clear:
	@(cd $(prefix); ./$(PRODUCT)_statistics.sh --clear >/dev/null 2>&1;)
	
VERSION_NUMBER:
	echo $(VERSION_DOT) > $@

BUILD_NUMBER:
	echo $(BUILD) > $@

# This target is ran from .java with super.exec()
show_webui_version:
	@if [ "X$(SERVER)" = "XAPACHE" ]; then \
		servertype=$(APACHE_TYPE); \
	else \
		servertype=$(NGINX_TYPE); \
	fi; \
	if [ "$(UPDATE)" = "0" ]; then \
		echo "$(VERSION_DOT) [$${servertype}]" ; \
	else \
		echo "$(VERSION_DOT) Update $(UPDATE) [$${servertype}]" ; \
	fi

show_webui_server_version:
	@if [ "X$(SERVER)" = "XAPACHE" ]; then \
		$(APACHECTL) -v; \
	else \
		$(NGINXBIN) -V 2>&1; \
	fi;

ROLLBACK_FILE=./tmp/sync_recv/backup.tar.gz
LOCKERR_FILE=./tmp/sync_recv/.syncerror
rollback:
	@echo "------------------------------------------------------"
	@echo "  rollback"
	@echo "------------------------------------------------------"
	@if [ -e $(LOCKERR_FILE) ]; then \
		rm -f $(LOCKERR_FILE) ; \
	fi;
	@if [ ! -e $(ROLLBACK_FILE) ]; then \
		echo "rollback: error not exist $(ROLLBACK_FILE)."; \
		exit 1; \
	fi;
	@tar -zxvf $(ROLLBACK_FILE) >/dev/null
	@$(MAKE) reconfig
	@echo "===Rollback succeeded.==="
	

Youez - 2016 - github.com/yon3zu
LinuXploit