X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=GNUmakefile.in;h=78b44aa8e7127fe7a6e662bf6704c61c10cc887e;hp=2f9c717368298bbef33dd4470ba91849e848396a;hb=712f52070112388ddfcdc059b54a76af3dbdf726;hpb=f90eadca38cd2da85b23f8b29acd6f76618b4d2c diff --git a/GNUmakefile.in b/GNUmakefile.in index 2f9c7173..78b44aa8 100644 --- a/GNUmakefile.in +++ b/GNUmakefile.in @@ -1,6 +1,6 @@ # Note: Makefile is built automatically from Makefile.in # -# $Id: GNUmakefile.in,v 1.116 2002/09/06 05:22:57 hal9 Exp $ +# $Id: GNUmakefile.in,v 1.136 2002/12/28 04:10:21 david__schmidt Exp $ # # Written by and Copyright (C) 2001 the SourceForge # Privoxy team. http://www.privoxy.org/ @@ -53,59 +53,102 @@ SNAPVERSION = $(RPM_VERSION)-$(shell date "+%Y%m%d") DIR_PRIVOXY_ROOT := . DIR_PRIVOXY_SRC := $(DIR_PRIVOXY_ROOT)/src DIR_PRIVOXY_SRC_PCRE := $(DIR_PRIVOXY_ROOT)/pcre +DIR_PRIVOXY_SRC_JAVA := $(DIR_PRIVOXY_ROOT)/src/java DIR_PRIVOXY_OBJ := $(DIR_PRIVOXY_ROOT)/obj ############################################################################# -# Directories for "make install" +# "make install" settings ############################################################################# -DEST = @prefix@ -CONFDEST = @prefix@@sysconfdir@ -SBIN_DEST = @prefix@@sbindir@ -MAN_DEST = @prefix@@mandir@ -DOK_WEB_USEM = doc/webserver/user-manual +# User and Group settings +USER = @USER@ +GROUP = @GROUP@ + +# PATHS set from configure +prefix = @prefix@ +exec_prefix = @exec_prefix@ +CONF_BASE = @sysconfdir@ +SBIN_DEST = @sbindir@ +MAN_DIR = @mandir@ +MAN_DEST = $(MAN_DIR)/man1 +SHARE_DEST = @datadir@ +DOC_DEST = $(SHARE_DEST)/doc/privoxy +VAR_DEST = @localstatedir@ +LOGS_DEST = $(VAR_DEST)/log/privoxy +PIDS_DEST = $(VAR_DEST)/run + +# if $prefix = /usr/local then the default CONFDEST change from +# CONF_DEST = $(CONF_BASE) to CONF_DEST = $(CONF_BASE)/privoxy +# by the target rule CONF_DEST +# +# also if the $prefix is /usr/local and there is no +# $(SHARE_DEST)/doc, it checks for $prefix/doc and installs there +# instead in this situation +# +# finally if $prefix=/usr/local and VAR_DEST=$prefix/var it +# changes this to /var for storing the logs and pidfile + +# Where to find docs. The install goes to $share_dest/doc/privoxy. +DOK_WEB = doc/webserver/ + +# Install usage should be compatible with install-sh. +INSTALL = @INSTALL@ + +# Permissions used during installation. +# Binaries (daemon, init scripts) +BIN_MODE = 0755 +# Files daemon writes to: *action, trust and logs. +RWD_MODE = 0660 +# Misc files, docs, etc. +RA_MODE = 0664 +# Directory +DIR_MODE = 0755 + +INSTALL_P = -m $(BIN_MODE) +INSTALL_T = -m $(RA_MODE) +INSTALL_D = -m $(DIR_MODE) -d +INSTALL_R = -m $(RWD_MODE) +# install options for superuser install +#INSTALL_S = -g -o ############################################################################# -# Build tools +# Build and Install tools ############################################################################# PROGRAM = privoxy@EXEEXT@ CC = @CC@ ECHO = echo GZIP_PROG = gzip -INSTALL = @INSTALL@ -INSTALL_P = -m 0750 -g @GROUP@ -o @USER@ -b -INSTALL_T = -m 0640 -g @GROUP@ -o @USER@ -b -INSTALL_D = -m 0750 -g @GROUP@ -o @USER@ -d +# id -u is not universal. FIXME: need to set from configure. Breaks on +# Solaris. +#ID = id -u +ID = id LD = @CC@ RM = rm -f +RMDIR = rmdir +MKDIR = ./mkinstalldirs STRIP_PROG = strip -SED = sed +CP = cp -f +SED = sed GREP = grep CAT = cat RPM = rpm -MV = mv +MV = mv TAR = tar LN = ln -WDUMP = @WDUMP@ -dump -JADECAT = @JADECAT@ -JADEBIN = @JADEBIN@ +TOUCH = touch +KILL = kill +CHMOD = chmod +CHOWN = chown +CHGRP = chgrp +GROUPS = groups DOC_STATUS = @DOC_STATUS@ # Note: Please make sure that -d ldp.dsl\#html stays the last option to # $(JADEBIN), because for some targets "-notoc" will be appended # to it (--> "ldp.dsl\#html-notoc"). -DB = $(JADEBIN) $(JADECAT) -i$(DOC_STATUS) -ihtml -t sgml -D.. -d ldp.dsl\#html -MAN2HTML = @MAN2HTML@ -G2H_CMD = groff -mandoc -Thtml TARGET_OS = @host@ PERL = perl DOC_DIR = doc/source -DOC_TMP = $(DOC_DIR)/tmp -DKPREFIX = @DKPREFIX@ - -#User Group paras -USER = @USER@ -GROUP = @GROUP@ # Program to do LF->CRLF # @@ -115,6 +158,8 @@ GROUP = @GROUP@ #DOSFILTER = $(SED) -e $$'s,$$,\r,' #DOSFILTER = gawk -v ORS='\r\n' '{print $0;}' DOSFILTER = $(PERL) -p -e 's/\n/\r\n/' +CVSROOT = :pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa +TMPDIR := $(shell mktemp -d /tmp/$(PROGRAM).XXXXXX) ############################################################################# # Setup for make distribution rh and suse for now @@ -126,16 +171,14 @@ RPM_BASE = @RPM_BASE@ ############################################################################# # We include these files in our distributions ############################################################################# +CONFIGS = config trust default.action standard.action user.action default.filter # take care that no CVS .cvsignore or other crappy files # are included here # and escape every '#' in the find. doh. -CONFIG_FILES = config trust \ - default.action \ - standard.action user.action \ - default.filter \ +CONFIG_FILES = $(CONFIGS) \ `find templates/ -type f | grep -v "CVS" | grep -v "\.\#" | grep -v ".*~" | grep -v ".cvsignore" | grep -v "TAGS"` -DOC_FILES = AUTHORS LICENSE README ChangeLog \ +DOC_FILES = AUTHORS LICENSE README ChangeLog INSTALL \ `find doc/text/ -type f | grep -v "CVS" | grep -v "\.\#" | grep -v ".*~" | grep -v ".cvsignore" | grep -v "TAGS"` \ `find doc/webserver/ -name "*.html" | grep -v "\(webserver\|team\)\/index\.html"` \ `find doc/webserver/ -name "*.css"` \ @@ -167,7 +210,7 @@ C_SRC = \ $(DIR_PRIVOXY_SRC)/urlmatch.c C_OBJS = $(C_SRC:$(DIR_PRIVOXY_SRC)/%.c=$(DIR_PRIVOXY_OBJ)/%.@OBJEXT@) -C_HDRS = $(C_SRC:.c=.h) project.h actionlist.h +C_HDRS = $(C_SRC:.c=.h) $(DIR_PRIVOXY_SRC)/project.h $(DIR_PRIVOXY_SRC)/actionlist.h W32_SRC = @WIN_ONLY@$(DIR_PRIVOXY_SRC)/w32log.c $(DIR_PRIVOXY_SRC)/w32taskbar.c $(DIR_PRIVOXY_SRC)/win32.c W32_FILES = @WIN_ONLY@$(DIR_PRIVOXY_OBJ)/w32res.res @@ -184,6 +227,10 @@ PCRE_SRC = @STATIC_PCRE_ONLY@$(DIR_PRIVOXY_SRC_PCRE)/get.c $(DIR_PRIVOXY_SRC PCRE_OBJS = @STATIC_PCRE_ONLY@$(PCRE_SRC:$(DIR_PRIVOXY_SRC_PCRE)/%.c=$(DIR_PRIVOXY_OBJ)/%.@OBJEXT@) PCRE_HDRS = @STATIC_PCRE_ONLY@$(DIR_PRIVOXY_SRC_PCRE)/config.h $(DIR_PRIVOXY_SRC_PCRE)/chartables.c $(DIR_PRIVOXY_SRC_PCRE)/internal.h $(DIR_PRIVOXY_SRC_PCRE)/pcre.h +ACTIVITY_SRC = @ACTIVITY_ONLY@$(DIR_PRIVOXY_SRC)/stats.c +ACTIVITY_OBJS = @ACTIVITY_ONLY@$(ACTIVITY_SRC:$(DIR_PRIVOXY_SRC)/%.c=$(DIR_PRIVOXY_OBJ)/%.@OBJEXT@) +ACTIVITY_HDRS = @ACTIVITY_ONLY@$(ACTIVITY_SRC:.c=.h) $(DIR_PRIVOXY_SRC)/ipc.h + # No REGEX (maybe because dynamically linked pcreposix): REGEX_SRC = @STATIC_PCRE_ONLY@REGEX_SRC = $(DIR_PRIVOXY_SRC_PCRE)/pcreposix.c @@ -200,9 +247,9 @@ SOCKET_LIB = @SOCKET_LIB@ # PThreads library, if needed. PTHREAD_LIB = @PTHREAD_ONLY@@PTHREAD_LIB@ -SRCS = $(C_SRC) $(W32_SRC) $(PCRS_SRC) $(PCRE_SRC) $(REGEX_SRC) -OBJS = $(C_OBJS) $(W32_OBJS) $(PCRS_OBJS) $(PCRE_OBJS) $(REGEX_OBJS) -HDRS = $(C_HDRS) $(W32_HDRS) $(PCRS_HDRS) $(PCRE_OBJS) $(REGEX_HDRS) +SRCS = $(C_SRC) $(W32_SRC) $(PCRS_SRC) $(PCRE_SRC) $(REGEX_SRC) $(ACTIVITY_SRC) +OBJS = $(C_OBJS) $(W32_OBJS) $(PCRS_OBJS) $(PCRE_OBJS) $(REGEX_OBJS) $(ACTIVITY_OBJS) +HDRS = $(C_HDRS) $(W32_HDRS) $(PCRS_HDRS) $(PCRE_OBJS) $(REGEX_HDRS) $(ACTIVITY_HDRS) LIBS = @LIBS@ $(W32_LIB) $(SOCKET_LIB) $(PTHREAD_LIB) @@ -240,7 +287,8 @@ all: $(PROGRAM) default.action .PHONY: all inifiles redhat-dist redhat-upload redhat-test solaris-dist suse-dist \ suse-upload win-dist tarball-dist dok redhat-dok webserver clean clobber tags \ install conectiva-spec conectiva-dist conectiva-upload debian-dist \ -debian-upload ensure-wdump ensure-jadebin ensure-dkprefix +debian-upload ensure-wdump ensure-jadebin ensure-dkprefix CONF_DEST LOG_DEST \ +PID_DEST check_doc install-strip uninstall GROUP_T java-activity-console ############################################################################# @@ -253,7 +301,8 @@ $(DIR_PRIVOXY_OBJ)/%.o: $(DIR_PRIVOXY_SRC_PCRE)/%.c $(DIR_PRIVOXY_OBJ) $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@ $(DIR_PRIVOXY_OBJ): - mkdir obj + $(CHMOD) $(DIR_MODE) $(MKDIR) + $(MKDIR) obj ############################################################################# # Strip master copy comments from default.action: @@ -637,6 +686,13 @@ tarball-upload: tarball-clean: $(RM) ../privoxy-$(VERSION)-$(CODE_STATUS)-src.tar.gz +############################################################################# +# java Activity Console +############################################################################# +java-activity-console: + javac -classpath $(DIR_PRIVOXY_SRC_JAVA):$(CLASSPATH) $(DIR_PRIVOXY_SRC)/java/org/privoxy/activityconsole/*.java + jar -cvfm ActivityConsole.jar $(DIR_PRIVOXY_SRC_JAVA)/org/privoxy/activityconsole/acon.manifest -C $(DIR_PRIVOXY_SRC_JAVA) org/privoxy/activityconsole + ############################################################################# # # Documentation @@ -732,9 +788,9 @@ $(DIR_PRIVOXY_OBJ)/dftables@EXEEXT@: $(DIR_PRIVOXY_SRC_PCRE)/dftables.c $( $(CC) -o $(DIR_PRIVOXY_SRC_PCRE)/dftables@EXEEXT@ $(CFLAGS) $(DIR_PRIVOXY_SRC_PCRE)/dftables.c # Win32 -$(DIR_PRIVOXY_OBJ)/w32log.@OBJEXT@: w32log.c errlog.h config.h jcc.h loadcfg.h miscutil.h $(DIR_PRIVOXY_SRC_PCRE)/pcre.h $(DIR_PRIVOXY_SRC_PCRE)/pcreposix.h pcrs.h project.h w32log.h w32taskbar.h win32.h -$(DIR_PRIVOXY_OBJ)/w32taskbar.@OBJEXT@: w32taskbar.c config.h w32log.h w32taskbar.h -$(DIR_PRIVOXY_OBJ)/win32.@OBJEXT@: win32.c config.h jcc.h loadcfg.h $(DIR_PRIVOXY_SRC_PCRE)/pcre.h $(DIR_PRIVOXY_SRC_PCRE)/pcreposix.h pcrs.h project.h w32log.h win32.h +$(DIR_PRIVOXY_OBJ)/w32log.@OBJEXT@: $(DIR_PRIVOXY_SRC)/config.h $(DIR_PRIVOXY_SRC)/errlog.h $(DIR_PRIVOXY_SRC)/jcc.h $(DIR_PRIVOXY_SRC)/loadcfg.h $(DIR_PRIVOXY_SRC)/miscutil.h $(DIR_PRIVOXY_SRC)/pcrs.h $(DIR_PRIVOXY_SRC)/project.h $(DIR_PRIVOXY_SRC)/w32log.c $(DIR_PRIVOXY_SRC)/w32log.h $(DIR_PRIVOXY_SRC)/w32taskbar.h $(DIR_PRIVOXY_SRC)/win32.h $(DIR_PRIVOXY_SRC_PCRE)/pcre.h $(DIR_PRIVOXY_SRC_PCRE)/pcreposix.h +$(DIR_PRIVOXY_OBJ)/win32.@OBJEXT@: $(DIR_PRIVOXY_SRC)/config.h $(DIR_PRIVOXY_SRC)/jcc.h $(DIR_PRIVOXY_SRC)/loadcfg.h $(DIR_PRIVOXY_SRC)/pcrs.h $(DIR_PRIVOXY_SRC)/project.h $(DIR_PRIVOXY_SRC)/w32log.h $(DIR_PRIVOXY_SRC)/win32.c $(DIR_PRIVOXY_SRC)/win32.h $(DIR_PRIVOXY_SRC_PCRE)/pcre.h $(DIR_PRIVOXY_SRC_PCRE)/pcreposix.h +$(DIR_PRIVOXY_OBJ)/w32taskbar.@OBJEXT@: $(DIR_PRIVOXY_SRC)/config.h $(DIR_PRIVOXY_SRC)/w32log.h $(DIR_PRIVOXY_SRC)/w32taskbar.c $(DIR_PRIVOXY_SRC)/w32taskbar.h $(DIR_PRIVOXY_OBJ)/w32res.res: $(DIR_PRIVOXY_SRC)/w32res.rc \ $(DIR_PRIVOXY_SRC)/w32res.h \ @@ -786,24 +842,302 @@ distclean: clobber tags: $(SRCS) $(HDRS) etags $(SRCS) $(HDRS) -install: all - # - # FIXME: This is a dirty hack to have an install target - # that works at least for some setups. This needs - # to be fixed! - # - $(STRIP_PROG) $(PROGRAM) - $(INSTALL) $(INSTALL_D) $(SBIN_DEST) - $(INSTALL) $(INSTALL_D) $(DEST)/user-manual - $(INSTALL) $(INSTALL_D) $(CONFDEST)/templates - $(INSTALL) $(INSTALL_D) $(DEST)/$(DOK_WEB_USEM) - $(INSTALL) $(INSTALL_P) $(PROGRAM) $(SBIN_DEST) - if [ -d "$(DOK_WEB_USEM)" ]; then $(INSTALL) $(INSTALL_T) $(DOK_WEB_USEM)/[a-z]* $(DEST)/$(DOK_WEB_USEM); fi - $(INSTALL) $(INSTALL_T) templates/[a-z]* $(CONFDEST)/templates - $(INSTALL) $(INSTALL_T) config default.action default.filter trust $(CONFDEST) - # FIXME $(ECHO) privoxy.logrotate privoxy.monthly privoxy.weekly - # FIXME: Need new manual! $(GZIP_PROG) -c privoxy.1 > $(MAN_DEST)/privoxy.1.gz - $(INSTALL) $(INSTALL_P) privoxy.init /etc/init.d/privoxy +CONF_DEST:=$(shell if [ "$(prefix)" = "/usr/local" ] && [ "$(CONF_BASE)" = "$(prefix)/etc" ];then \ + $(ECHO) "$(CONF_BASE)/privoxy";\ + else\ + $(ECHO) "$(CONF_BASE)";\ + fi) + +LOG_DEST:=$(shell if [ "$(prefix)" = "/usr/local" ] && [ "$(LOGS_DEST)" = "$(prefix)/var/log/privoxy" ];then \ + $(ECHO) "/var/log/privoxy" ;\ + else\ + $(ECHO) "$(LOGS_DEST)";\ + fi) + +PID_DEST:=$(shell if [ "$(prefix)" = "/usr/local" ] && [ "$(PIDS_DEST)" = "$(prefix)/var/run" ];then \ + $(ECHO) "/var/run" ;\ + else\ + $(ECHO) "$(PIDS_DEST)";\ + fi) + +check_doc:=$(shell if [ ! -d "$(SHARE_DEST)/doc" ] && [ "$(prefix)" = "/usr/local" ] && [ -d "$(prefix)/doc" ];then \ + $(ECHO) "1";\ + else\ + $(ECHO) "0";\ + fi) + +# If USER is specified but no GROUP, assume there is a GROUP of same name. +GROUP_T:=$(shell if [ x$(GROUP) = x ] && [ x$(USER) != x ];then \ + $(ECHO) "$(USER)" ;\ + else\ + $(ECHO) "$(GROUP)";\ + fi) + +install-strip: + $(MAKE) install STRIP=-s + +# FIXME: Test USER and GROUP on Slack to make sure this works as +# intended. +# +# FIXME: id handling needs help, probably via configure, since 'id -u' is not +# universally reliable (eg Solaris). Group handling could be better. +# Perhaps the whole user/group validation should be done here, and simplified. +PROGRAM_V = Privoxy $(VERSION) +install: CONF_DEST LOG_DEST PID_DEST check_doc GROUP_T + @# Quick test for valid USER. + @if [ -n "$(USER)" ]; then \ + $(ID) $(USER) >/dev/null || exit 1;\ + fi + @# Test for valid group. FIXME. USER does not have to belong to GROUP + @# for file ownership purposes. +# if [ -n "$(GROUP_T)" ] && [ -n "$(USER)" ] && ! $(GROUPS) $(USER) | $(GREP) "\<$(GROUP_T)\>" >/dev/null; then \ +# $(ECHO) Group $(GROUP_T) for User $(USER) is invalid && exit 1 ;\ +# fi + + @$(ECHO) "Creating directories, and preparing $(PROGRAM_V) installation" + $(CHMOD) $(DIR_MODE) $(MKDIR) + @$(MKDIR) $(SBIN_DEST) $(prefix) $(CONF_DEST) $(CONF_DEST)/templates $(SHARE_DEST) \ + $(LOG_DEST) $(PID_DEST) + @# Install the executable binary, strip if invoked as install-strip + @test -n "$(STRIP)" &&\ + $(ECHO) Installing $(PROGRAM) stripped executable to $(SBIN_DEST) ||\ + $(ECHO) Installing $(PROGRAM) executable to $(SBIN_DEST) + $(INSTALL) $(INSTALL_P) $(STRIP) $(PROGRAM) $(SBIN_DEST) + + @# Install the DOCS and man page. install-sh only does one file at a time. + -@if [ $(check_doc) = 0 ]; then \ + DOC=$(DOC_DEST) ;\ + else \ + DOC=$(prefix)/doc/privoxy ;\ + fi;\ + $(MKDIR) $$DOC $$DOC/user-manual $$DOC/faq $$DOC/developer-manual \ + $$DOC/man-page $$DOC/images $(MAN_DEST) ;\ + if [ -d "$(DOK_WEB)" ]; then \ + $(ECHO) Installing FAQ, Manual, and other docs to $$DOC;\ + for i in user-manual developer-manual faq; do \ + for ii in $(DOK_WEB)/$$i/*html; do \ + $(INSTALL) $(INSTALL_T) $$ii $$DOC/$$i;\ + done ;\ + done ;\ + for i in $(DOK_WEB)/images/*jpg; do \ + $(INSTALL) $(INSTALL_T) $$i $$DOC/images;\ + done ;\ + $(INSTALL) $(INSTALL_T) $(DOK_WEB)/man-page/*html $$DOC/man-page;\ + $(INSTALL) $(INSTALL_T) $(DOK_WEB)/privoxy-index.html $$DOC/index.html;\ + $(INSTALL) $(INSTALL_T) AUTHORS $$DOC;\ + $(INSTALL) $(INSTALL_T) LICENSE $$DOC;\ + $(INSTALL) $(INSTALL_T) README $$DOC;\ + $(INSTALL) $(INSTALL_T) ChangeLog $$DOC;\ + $(INSTALL) $(INSTALL_T) $(DOK_WEB)/p_doc.css $$DOC;\ + fi + @# Not all platforms support gzipped man pages. + @$(ECHO) Installing man page to $(MAN_DEST)/privoxy.1 + -$(INSTALL) $(INSTALL_T) privoxy.1 $(MAN_DEST)/privoxy.1 + + @# Change the config file default directories according to the configured ones + @$(ECHO) Rewriting config for this installation + @if [ -f config.base ] ; then \ + $(CAT) config >config~ ;\ + $(MV) config.base config ;\ + fi + $(SED) 's+confdir .+confdir $(CONF_DEST)+' config | \ + $(SED) 's+logdir .+logdir $(LOG_DEST)+' >config.updated + $(MV) config config.base + $(MV) config.updated config + + @# Install the config support files. Test for root install, and abort + @# if there is no privoxy user, and no other user or group was enabled + @# during configure. + @$(ECHO) Installing templates to $(CONF_DEST)/templates + @for i in `find templates -type f`; do \ + $(INSTALL) $(INSTALL_T) $$i $(CONF_DEST)/templates ;\ + done + + @# FIXME: group/user validation is overly convoluted. + @# If superuser install ... we require a minimum of group ownership + @# of those files the daemon writes to, to be non-root owned. + @if [ "`$(ID) |sed 's/(.*//' |sed 's/.*=//'`" = "0" ] ;then\ + if [ x$(USER) = x ] || [ $(USER) = root ]; then \ + if [ x$(GROUP) = x ] || [ $(GROUP) = root ]; then \ + if [ "`$(ID) privoxy`" ] && \ + $(GROUPS) privoxy | $(SED) 's/^.*://' |$(GREP) "\" >/dev/null; then \ + $(ECHO) "Warning: Setting group owner to privoxy";\ + GROUP_T=privoxy ;\ + else \ + $(ECHO) "******************************************************************" ;\ + $(ECHO) " WARNING! WARNING! installing config files as root!" ;\ + $(ECHO) " It is strongly recommended to run $(PROGRAM) as a non-root user," ;\ + $(ECHO) " and to install the config files as that user and/or group!" ;\ + $(ECHO) " Please read INSTALL, and create a privoxy user and group!" ;\ + $(ECHO) "*******************************************************************" ;\ + exit 1 ;\ + fi ;\ + else \ + GROUP_T=$(GROUP) ;\ + fi ;\ + INSTALL_CONF="$(INSTALL_R) -g $$GROUP_T " ;\ + else \ + $(ECHO) "Superuser install, installing config files as $(USER):$(GROUP_T)" ;\ + INSTALL_CONF="$(INSTALL_R) -o $(USER) -g $(GROUP_T)" ;\ + GROUP_T=$(GROUP_T) ;\ + fi ;\ + else \ + if [ ! "`id $(USER)`" = "`id`" ] ;then \ + $(ECHO) "** WARNING ** current install user different from configured user!!" ;\ + $(ECHO) "Edit may fail." ;\ + fi ;\ + INSTALL_CONF="$(INSTALL_R)" ;\ + fi ;\ + $(ECHO) Installing configuration files to $(CONF_DEST);\ + for i in $(CONFIGS); do \ + if [ -s "$(CONF_DEST)/$$i" ] ; then \ + $(ECHO) Installing $$i as $$i.new ;\ + $(INSTALL) $$INSTALL_CONF $$i $(CONF_DEST)/$$i.new || exit 1;\ + NEW=1;\ + else \ + $(INSTALL) $$INSTALL_CONF $$i $(CONF_DEST) || exit 1;\ + fi ;\ + done ;\ + if [ -n "$$NEW" ]; then \ + $(CHMOD) $(RWD_MODE) $(CONF_DEST)/*.new || exit 1 ;\ + $(ECHO) "Warning: Older config files are preserved. Check new versions for changes!" ;\ + fi ;\ + [ ! -f $(LOG_DEST)/logfile ] && $(ECHO) Creating logfiles in $(LOG_DEST) || \ + $(ECHO) Checking logfiles in $(LOG_DEST) ;\ + $(TOUCH) $(LOG_DEST)/logfile $(LOG_DEST)/jarfile || exit 1 ;\ + if [ x$$USER != x ]; then \ + $(CHOWN) $$USER $(LOG_DEST)/logfile $(LOG_DEST)/jarfile || \ + $(ECHO) "** WARNING ** current install user different from configured user. Logging may fail!!" ;\ + fi ;\ + if [ x$$GROUP_T != x ]; then \ + $(CHGRP) $$GROUP_T $(LOG_DEST)/logfile $(LOG_DEST)/jarfile || \ + $(ECHO) "** WARNING ** current install user different from configured user. Logging may fail!!" ;\ + fi ;\ + $(CHMOD) $(RWD_MODE) $(LOG_DEST)/logfile $(LOG_DEST)/jarfile || exit 1 ;\ + if [ "$(prefix)" = "/usr/local" ] || [ "$(prefix)" = "/usr" ]; then \ + if [ -f /etc/slackware-version ] && [ -d /etc/rc.d/ ] && [ -w /etc/rc.d/ ] ; then \ + $(SED) 's+%PROGRAM%+$(PROGRAM)+' slackware/rc.privoxy.orig | \ + $(SED) 's+%SBIN_DEST%+$(SBIN_DEST)+' | \ + $(SED) 's+%CONF_DEST%+$(CONF_DEST)+' | \ + $(SED) 's+%USER%+$$USER+' | \ + $(SED) 's+%GROUP%+$(GROUP_T)+' >slackware/rc.privoxy ;\ + $(INSTALL) $(INSTALL_P) slackware/rc.privoxy /etc/rc.d/ ;\ + $(ECHO) "Installing for Slackware." ;\ + $(ECHO) "Dont forget to add the rc.privoxy to rc.local if you want it started at every boot" ;\ + elif [ -f /etc/redhat-release ] && [ -d /etc/rc.d/init.d/ ] && [ -w /etc/rc.d/init.d/ ] ; then \ + $(ECHO) "Installing init script to /etc/rc.d/init.d/privoxy" ;\ + $(SED) 's,^PRIVOXY_BIN=.*,PRIVOXY_BIN="/usr/local/sbin/$(PROGRAM)",' privoxy.init |\ + $(SED) 's,^PRIVOXY_CONF=.*,PRIVOXY_CONF="$(CONF_DEST)/config",' |\ + $(SED) "s,^PRIVOXY_USER=.*,PRIVOXY_USER=$$USER," > init.tmp ;\ + $(INSTALL) $(INSTALL_P) init.tmp /etc/rc.d/init.d/privoxy && $(RM) init.tmp;\ + $(MKDIR) /etc/logrotate.d/ ;\ + $(ECHO) "Installing logrotate script to /etc/logrotate.d/" ;\ + $(INSTALL) -m 0644 privoxy.logrotate /etc/logrotate.d/privoxy ;\ + elif [ -d /etc/init.d ] && [ -w /etc/init.d ] ; then \ + $(ECHO) "Installing generic init script to /etc/init.d/privoxy" ;\ + $(ECHO) "Please check that the PATHs are correct, and edit if needed." ;\ + $(INSTALL) $(INSTALL_P) privoxy-generic.init /etc/init.d/privoxy ;\ + fi ;\ + else \ + $(ECHO) "No init script installed, install it manually if needed" ;\ + fi + @# mmmmm, good. + @$(ECHO) "$(PROGRAM_V) installation succeeded!" + @$(ECHO) "The Privoxy configuration files have been installed in $(CONF_DEST)" + +# rmdir is used as a precaution since it will not remove non-empty +# directories. RH init script creates lock file and pid file. +uninstall: CONF_DEST LOG_DEST PID_DEST check_doc + @$(ECHO) Starting Privoxy uninstallation + @# KILL privoxy if running + -@if [ -f /etc/redhat-release ] && [ -x /etc/rc.d/init.d/privoxy ]; then \ + /etc/rc.d/init.d/privoxy stop >/dev/null 2>/dev/null ;\ + chkconfig --del $(PROGRAM) 2>/dev/null;\ + fi + -@test -f $(PID_DEST)/privoxy.pid && $(ECHO) Stopping $(PROGRAM) &&\ + $(KILL) `$(CAT) $(PID_DEST)/privoxy.pid` || : + -@test -f /var/run/privoxy.pid && $(ECHO) Stopping $(PROGRAM) &&\ + $(KILL) `$(CAT) /var/run/privoxy.pid ` || : + + @# Program binary + @$(ECHO) Removing $(PROGRAM) binary + $(RM) $(SBIN_DEST)/$(PROGRAM) $(SBIN_DEST)/$(PROGRAM)~ + + @# config files and dir, and maybe old install backups + -@if [ -d $(CONF_DEST) ]; then \ + $(ECHO) Saving $(PROGRAM) config files to /tmp/$(PROGRAM)-save ;\ + $(MKDIR) /tmp/$(PROGRAM)-save ;\ + cd $(CONF_DEST) ;\ + for i in $(CONFIGS); do \ + [ -f $$i ] && $(CP) $$i /tmp/$(PROGRAM)-save ;\ + done ;\ + fi + @$(ECHO) Removing $(PROGRAM) config files + -@for i in $(CONFIGS); do \ + test -f $(CONF_DEST)/$$i && $(ECHO) Removing $$i ;\ + $(RM) $(CONF_DEST)/$$i $(CONF_DEST)/$$i~ $(CONF_DEST)/$$i.new ;\ + done + -@test -d $(CONF_DEST)/templates && $(RM) -r $(CONF_DEST)/templates &&\ + $(ECHO) "Removing $(CONF_DEST)/templates/*" + + @# man page and docs + @$(ECHO) Removing $(PROGRAM) docs + -$(RM) $(MAN_DEST)/privoxy.1* + -$(RM) -r $(DOC_DEST) || $(RM) -r $(prefix)/doc/privoxy + + @# Log and jarfile and pidfile + @$(ECHO) Removing $(PROGRAM) logs + -$(RM) $(LOG_DEST)/logfile $(PID_DEST)/privoxy.pid $(LOG_DEST)/jarfile + + @# Final clean up of unused directories. Special handling of CONF and LOG + # destinations. + @$(ECHO) Removing $(PROGRAM) directories + @for i in $(LOG_DEST) $(CONF_DEST); do \ + if test -d $$i; then \ + $(ECHO) Removing $$i ;\ + $(RMDIR) $$i || $(ECHO) "$$i is not empty, not removed" ;\ + fi;\ + done + @if [ ! "$(prefix)" = "/usr/local" ] ;then \ + for i in $(MAN_DEST) $(MAN_DIR) $(SHARE_DEST)/doc $(SHARE_DEST) $(SBIN_DEST); do \ + if test -d $$i; then \ + $(ECHO) Removing $$i ;\ + $(RMDIR) $$i || $(ECHO) "$$i is not empty, not removed" ;\ + fi;\ + done;\ + if test $(LOG_DEST) != /var/log/privoxy && test -d $(prefix)/var/log; then \ + $(ECHO) Removing $(prefix)/var/log ;\ + $(RMDIR) $(prefix)/var/log || $(ECHO) "$(prefix)/var/log is not empty, not removed";\ + fi ;\ + if test $(PID_DEST) != /var/run && test -d $(prefix)/var/run; then \ + $(ECHO) Removing $(prefix)/var/run ;\ + $(RMDIR) $(prefix)/var/run || $(ECHO) "$(prefix)/var/run is not empty, not removed";\ + fi ;\ + if test $(prefix)/var != /var && test -d $(prefix)/var; then \ + $(ECHO) Removing $(prefix)/var ;\ + $(RMDIR) $(prefix)/var || $(ECHO) "$(prefix)/var is not empty, not removed" ;\ + fi ;\ + if test $(prefix) != / && test $(prefix) != /usr && test -d $(prefix); then \ + $(ECHO) Removing $(prefix) ;\ + $(ECHO) Removing installation directory $(prefix) ;\ + $(RMDIR) $(prefix) || $(ECHO) "$(prefix) is not empty, not removed" ;\ + fi;\ + fi + + @# init scripts and logrotate + @if [ "$(prefix)" = "/usr/local" ] || [ "$(prefix)" = "/usr" ]; then \ + $(ECHO) Removing $(PROGRAM) init script ;\ + if [ -f /etc/slackware-version ] && [ -d /etc/rc.d/ ] && [ -w /etc/rc.d/ ] ; then \ + $(RM) /etc/rc.d/rc.privoxy ;\ + elif [ -f /etc/redhat-release ] && [ -d /etc/rc.d/init.d/ ] && [ -w /etc/rc.d/init.d/ ] ; then \ + $(RM) /etc/rc.d/init.d/privoxy /etc/logrotate.d/privoxy;\ + elif [ -d /etc/init.d ] && [ -w /etc/init.d ] ; then \ + $(RM) /etc/init.d/privoxy ;\ + else \ + $(ECHO) "Unable to remove privoxy init script, not installed or permission denied" ;\ + fi ;\ + fi + @$(ECHO) Privoxy uninstalled, bye coffee: @perl -e 'print pack "C*", (31,139,8,8,153,63,226,60,2,3,99,111,102,102,101,101,0,109,143,205,13,192,32,8,133,\ @@ -819,6 +1153,119 @@ coffee: ## end: # $Log: GNUmakefile.in,v $ +# Revision 1.136 2002/12/28 04:10:21 david__schmidt +# Initial drop of dashboard instrumentation - enabled with +# --enable-activity-console +# +# Revision 1.135 2002/11/04 05:11:05 hal9 +# Just a clean up of overly verbose output from install/uninstall. +# +# Revision 1.134 2002/10/28 06:01:39 hal9 +# Make uninstall: cp -v problems on SF Solaris. +# +# Revision 1.133 2002/10/28 02:12:22 hal9 +# Make install/uninstall: +# - More cleanup of variables +# - Make the minimum requirement for root install, an available non-root GROUP. +# If a privoxy user exists (and no other USER is specified), then the files +# that require write access are installed as group owned by privoxy. FIXME: +# There has to be a cleaner way to do this. +# - Uninstall now saves configuration files to /tmp. +# +# Revision 1.132 2002/10/24 22:24:58 hal9 +# Make install: Minor clean up for variable handling. +# +# Revision 1.131 2002/10/23 07:00:21 agotneja +# added a chmod on mkinstalldirs just before using it, otherwise it +# will fail when running make for the first time. +# +# Revision 1.130 2002/10/22 05:49:14 hal9 +# Make install: +# - /bin/sh on Solaris does not handle: ! test. +# - Remove some unused doc variables. +# - Make configs group writable. +# +# Revision 1.129 2002/10/20 07:15:12 hal9 +# Getting near the end (I hope) of install target updates: +# - Rewrite RH init script to reflect configured values. +# - Test for USER=root as well as UID=0 +# - Test for invalid group (probably needs more work). +# - Add /usr to /usr/local test for when to install init scripts, etc. +# - More testing on previous changes. +# +# Revision 1.128 2002/10/18 05:36:32 hal9 +# More install target fixes: +# - Quick fix of log ownership on root install (lightly tested). If this goes +# true to form, then the fix will break something else :( +# - Fix what looks like was invalid user on Slack if root install and +# we use an existing privoxy user. No way to test this. +# See FIXMEs. +# +# Revision 1.127 2002/10/18 00:58:07 hal9 +# More install/uninstall/install-strip updates: +# - Don't install gzipped man page (Solaris again). +# - Don't overwrite existing config files, and install new versions as *.new. +# Fix permissions/ownership here too. +# - Better testing before removing directories. +# - Some better messages during install, ie 'Preserving configs', etc. +# - Better handling of install-strip to fix previous problem of trying to strip +# init scripts. +# - Crude test for valid USER in case is set on command line. +# - Force immediate exit on some errors (eg invalid group). +# +# Revision 1.126 2002/10/16 05:38:00 hal9 +# More make install/uninstall updates: +# -Make compatible with install-sh with does not support -b flag, and can only +# handle one file at a time (sigh). +# -Manually save existing config files, if they exist. +# -Fix install-strip so does not try to strip init scripts. +# +# Revision 1.125 2002/10/15 05:53:34 hal9 +# A few more cleanups: +# -use mkinstalldirs consistently. +# -Install init script and logrotate only is prefix=/usr/local (installed to +# system dir /etc instead of /usr/local...) +# -Test for directory existence before removing to avoid misleading error +# messages. +# +# Revision 1.124 2002/10/13 19:58:09 hal9 +# Hopefully, this is final updates for install and uninstall targets. +# - Fix typo in chown syntax +# - chmod on mkinstalldirs to make it executable (is there a better way?). +# - Cleanup comments, and revert most of previous output cleanup changes. +# - Include all HTML docs, since there are cross links between these. +# - Improved group handling (still some potential problems, see FIXME). +# - Update PHONY targets. +# - Uninstall was not removing CONF and LOG destinations in some situations. +# - Various other minor cleanups. +# +# Revision 1.123 2002/10/12 06:05:41 hal9 +# WIP: This is mostly to fix various problems encountered on SF CF Solaris +# servers for the install target only. This did not handle /[^C]*, test -e, not +# quoting within tests (ie [ `id $(USER)` = `id` ] needs quoting) in some +# situations, and does not support id -u (with the id in $PATH, but there is +# another...). Also, cleaned up output. Needs testing. I am unable to test the +# root install stuff either. It installs now at least (not tested further). +# A few other nits. +# +# Revision 1.122 2002/10/11 06:03:08 hal9 +# Really install FAQ this time, and not u-m in two locations. Include images +# for u-m. +# +# Revision 1.120 2002/10/10 20:39:27 dessent +# +# +# Fixes for Win32 GUI build (added "$(DIR_PRIVOXY_SRC)/" to dependencies list) +# +# Revision 1.119 2002/09/23 03:42:41 hal9 +# This is higuita's make install/uninstall patch. Needs testing please!!! +# +# Revision 1.118 2002/09/11 08:22:37 oes +# Fixed path (C_HDRS are in src/ now) +# +# Revision 1.117 2002/09/06 23:33:35 hal9 +# Fix clobber for config.h and config.h.in are in src now. +# # Revision 1.116 2002/09/06 05:22:57 hal9 # Adapt make webserver target to 3.0 for pdf uploading. #