diff --git a/Makefile.in b/Makefile.in index 1b833ad3..f1f29f5b 100644 --- a/Makefile.in +++ b/Makefile.in @@ -19,15 +19,18 @@ SRCS := String.cpp Csocket.cpp main.cpp znc.cpp User.cpp IRCSock.cpp Client.cpp OBJS := $(patsubst %cpp,%o,$(SRCS)) CLEAN := znc *.o core core.* DISTCLEAN := Makefile config.log config.status znc-config znc-buildmod .depend \ - modules/.depend modules/Makefile + modules/.depend modules/Makefile man/Makefile -.PHONY: all modules clean distclean install +.PHONY: all man modules clean distclean install -all: znc @MODTARGET@ +all: znc man @MODTARGET@ znc: $(OBJS) $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) +man: + @$(MAKE) -C man + modules: @if test -n "@MODTARGET@"; then \ $(MAKE) -C modules; \ @@ -40,6 +43,7 @@ clean: @if test -n "@MODTARGET@"; then \ $(MAKE) -C modules clean; \ fi + @$(MAKE) -C man clean distclean: clean rm -rf $(DISTCLEAN) @@ -58,5 +62,6 @@ install: znc @MODTARGET@ @if test -n "@MODTARGET@"; then \ $(MAKE) -C modules install DESTDIR=$(DESTDIR); \ fi + @$(MAKE) -C man install DESTDIR=$(DESTDIR) -include $(wildcard .depend/*.dep) diff --git a/configure b/configure index 16c2e476..9fa7068f 100755 --- a/configure +++ b/configure @@ -3922,6 +3922,8 @@ ac_config_files="$ac_config_files znc-config" ac_config_files="$ac_config_files znc-buildmod" +ac_config_files="$ac_config_files man/Makefile" + if test "$MODULES" = "yes"; then ac_config_files="$ac_config_files modules/Makefile" @@ -4496,6 +4498,7 @@ do "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "znc-config") CONFIG_FILES="$CONFIG_FILES znc-config" ;; "znc-buildmod") CONFIG_FILES="$CONFIG_FILES znc-buildmod" ;; + "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; "modules/Makefile") CONFIG_FILES="$CONFIG_FILES modules/Makefile" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 diff --git a/configure.in b/configure.in index 21669373..48c1d1d8 100644 --- a/configure.in +++ b/configure.in @@ -208,6 +208,7 @@ AC_SUBST([DATADIR]) AC_CONFIG_FILES([Makefile]) AC_CONFIG_FILES([znc-config]) AC_CONFIG_FILES([znc-buildmod]) +AC_CONFIG_FILES([man/Makefile]) if test "$MODULES" = "yes"; then AC_CONFIG_FILES([modules/Makefile]) fi diff --git a/man/Makefile.in b/man/Makefile.in new file mode 100644 index 00000000..1f30d922 --- /dev/null +++ b/man/Makefile.in @@ -0,0 +1,18 @@ +prefix := @prefix@ +exec_prefix := @exec_prefix@ +datarootdir := @datarootdir@ +mandir := @mandir@ + +MAN1 := znc.1.gz znc-buildmod.1.gz znc-config.1.gz + +all: $(MAN1) + +%.1.gz: %.1 + gzip -9 <$< >$@ + +clean: + -rm -f $(MAN1) + +install: $(MAN1) + mkdir -p $(DESTDIR)$(mandir)/man1 + install -m 644 $(MAN1) $(DESTDIR)$(mandir)/man1 diff --git a/man/znc-buildmod.1 b/man/znc-buildmod.1 new file mode 100644 index 00000000..b0e5b660 --- /dev/null +++ b/man/znc-buildmod.1 @@ -0,0 +1,23 @@ +.TH ZNC\-BUILDMOD 1 2008\-06\-01 ZNC +.SH NAME +znc\-buildmod \- compile ZNC modules +.SH SYNOPSIS +.B znc\-buildmod +FILE... +.SH DESCRIPTION +.BR znc\-buildmod +compiles a ZNC module for you. +You just give it a list of source files and every single file is compiled +into a module. +.SH EXIT STATUS +Normally, exit status is 0 if everything went fine. +In case the compiler errors when compiling some module, the exit status is 1. +.SH ENVIRONMENT +.TP +.B PATH +.br +.I sed +must be in PATH. +.I znc-config +should be found automatically. +If not, you must add it to PATH yourself. diff --git a/man/znc-config.1 b/man/znc-config.1 new file mode 100644 index 00000000..ea191c1b --- /dev/null +++ b/man/znc-config.1 @@ -0,0 +1,46 @@ +.TH ZNC\-CONFIG 1 2008\-06\-01 ZNC +.SH NAME +znc\-config \- script to get information about the installed version of ZNC +.SH SYNOPSIS +.B znc\-config \-\-cflags +.br +.B znc\-config \-\-include +.br +.B znc\-config \-\-libs +.br +.B znc\-config \-\-moddir +.br +.B znc\-config \-\-datadir +.br +.B znc\-config \-\-version +.br +.B znc\-config \-\-prefix +.br +.SH DESCRIPTION +.BR znc\-config +helps you compiling ZNC modules. +This tool gives you a list of compiler and linker flags that you need to +compile modules for the installed ZNC instance. +.SH OPTIONS +.TP +.B \-\-cflags +Displays the necessary compiler options. +This does not include the include directories! +.TP +.B \-\-include +This prints the compiler flags needed for the include directories. +.TP +.B \-\-libs +Prints the linker flags needed for ZNC modules. +.TP +.B \-\-moddir +Print the directory to which modules are installed. +.TP +.B \-\-datadir +Print the directory to which data files for modules are installed. +.TP +.B \-\-version +Displays the version number of ZNC. +.TP +.B \-\-prefix +Displays the prefix under which ZNC is installed. diff --git a/man/znc.1 b/man/znc.1 new file mode 100644 index 00000000..3b2618f9 --- /dev/null +++ b/man/znc.1 @@ -0,0 +1,130 @@ +.TH ZNC 1 2008\-06\-01 ZNC +.SH NAME +znc \- An advanced IRC bouncer +.SH SYNOPSIS +.B znc \-\-help +.br +.B znc \-\-version +.br +.B znc \-\-makepass +.br +.B znc +.RB [ \-n ] +.RB [ \-d +.IR datadir ] +.br +.B znc +.RB [ \-n ] +.RB [ \-d +.IR datadir ] +.B \-\-makeconf +.br +.B znc +.RB [ \-n ] +.RB [ \-d +.IR datadir ] +.B \-\-makepem +.SH DESCRIPTION +.B znc +is an IRC proxy. +It runs as a daemon and connects to IRC server, then allows you to connect +from a workstation and work as the user that is logged in to the IRC +server. +After you disconnect, it maintains the connection to the server. +It acts like any normal IRC server, so you can use any IRC client to +connect to it. +.SH OPTIONS +.TP +.BR \-h ", " \-\-help +Output a brief help message. +.TP +.BR \-v ", " \-\-version +Show the full version number. +.TP +.BR \-n ", " \-\-no-color +Don't use any color escape sequences. +.TP +.BI \-d " DATADIR" "\fR,\fP \-\-datadir=" DATADIR +Specify another datadir. +This is where +.B znc +saves everything. +.TP +.BR \-c ", " \-\-makeconf +Interactively create a new configuration. +.TP +.BR \-s ", " \-\-makepass +Hash a password for use in +.IR znc.conf . +.B znc +uses MD5 for hashing. +.TP +.BR \-p ", " \-\-makepem +Generate +.IR znc.pem . +This is the server certificate +.B znc +uses. +You need this for SSL. +.TP +.BR \-e ", " \-\-encrypt-pem +Just ignore this :). +.SH FILES +.TP +.I /usr/local/share/znc/ +Static module data like webadmin skins +.TP +.I /usr/local/lib/znc/ +.B znc +installs its modules to this directory. +.TP +.I /usr/local/include/znc/ +These are the headers needed for compilling own modules. +.TP +.I ~/.znc +This is the default datadir. The following paths assume that you use this. +If you change this via +.I \-\-datadir +then the following lines are relative to that dir. +.TP +.I ~/.znc/znc.pem +This is the server certificate +.B znc +uses for listening on SSL ports. +You can generate this via +.I --makepem +and you may replace this with your own certificate, if you want to. +.TP +.I ~/.znc/modules/ +If you compile your own modules, you can save them here. +.TP +.I ~/.znc/configs/znc.conf +This is the path to +.IR znc.conf . +Use +.I \-\-makeconf +for an easy way to generate it. +.TP +.I ~/.znc/configs/znc.conf-backup +.B znc +may rewrite +.I znc.conf +to save your new settings. +In case this goes wrong, you still have this backup of +.I znc.conf +which is overwritten everytime +.B znc +saves its config. +.TP +.IB ~/.znc/users/ USERNAME / +The data for every user is saved in this dir. +.B USERNAME +refers to the user name of that user. +.TP +.IB ~/.znc/users/ USERNAME /moddata/ MODULENAME / +This is where each module can save some stuff. This is mainly used +for remembering module settings that are not part of +.IR znc.conf . +.TP +.IB ~/.znc/moddata/ MODULENAME / +This is where global modules may save their settings.