#### Start of system configuration section. ####
-srcdir=@srcdir@
-VPATH=@srcdir@
+prefix = @prefix@
+srcdir = @srcdir@
+VPATH = @srcdir@
-SHELL=@SHPROG@
-RM=@RMPROG@
-AWK=@AWK@
+SHELL = @SHPROG@
+RM = @RMPROG@
+AWK = @AWK@
@SET_MAKE@
#### End of system configuration section. ####
+SUBDIRS = doc ircd
+MAKEFILES = Makefile doc/Makefile ircd/Makefile
+
all: build
-.PHONY: server build depend install config update diff patch export
+.PHONY: server build depend install config update diff patch export update
# Some versions of make give a warning when this is empty:
.SUFFIXES: .dummy
-build:
- @if [ ! -f config/config.h ]; then \
- $(MAKE) config; \
- else \
- for i in config ircd; do \
- echo "Building $$i..."; \
- cd $$i; ${MAKE} build; cd ..; \
- done; \
- fi
+build: ${MAKEFILES}
+ @for i in ${SUBDIRS}; do \
+ echo "Building $$i..."; \
+ cd $$i; ${MAKE} build; cd ..; \
+ done
+
+config:
+ @echo "*************************************************************"
+ @echo "* The \"make config\" step is now DEPRECATED. Most *"
+ @echo "* server options are now configurable via the configuration *"
+ @echo "* file using F-lines; the rest are specified on the command *"
+ @echo "* line to \"./configure\". To aid the transition, a shell *"
+ @echo "* script has been provided to generate the necessary *"
+ @echo "* configuration lines for you. You may run this script by *"
+ @echo "* typing \"tools/transition\"; please pay attention to its *"
+ @echo "* output. This message will be removed for the next major *"
+ @echo "* release of ircu. *"
+ @echo "*************************************************************"
root-clean:
@for i in '*.orig' '.*.orig' '\#*' '*~' '.*~' '*.bak' '.*.bak' core; do\
test -n "$$REMOVE_FILES" && ${RM} -f $$REMOVE_FILES; \
done || true
-clean: root-clean
- @for i in ircd config; do \
+sub-clean: ${MAKEFILES}
+ @for i in ${SUBDIRS}; do \
echo "Cleaning $$i..."; \
cd $$i; ${MAKE} clean; cd ..;\
done
+clean: root-clean sub-clean
+
root-distclean: root-clean
@for i in '*.rej'; do \
echo "Removing $$i"; \
REMOVE_FILES="`find . -name "$$i" -print`"; \
test -n "$$REMOVE_FILES" && ${RM} -f $$REMOVE_FILES; \
done || true
- ${RM} -f Makefile
-distclean: root-distclean
- @for i in doc ircd config; do \
+sub-distclean: ${MAKEFILES}
+ @for i in ${SUBDIRS}; do \
echo "Dist-cleaning $$i..."; \
cd $$i; ${MAKE} distclean; cd ..;\
done
-maintainer-clean: root-distclean
- @for i in doc ircd config; do \
+distclean: root-distclean sub-distclean
+ ${RM} -f Makefile config.h config.log config.cache config.status \
+ stamp-h
+
+maintainer-clean: root-distclean ${MAKEFILES}
+ @for i in ${SUBDIRS}; do \
echo "maintainer-cleaning $$i..."; \
cd $$i; ${MAKE} maintainer-clean; cd ..;\
done
-depend:
- @for i in ircd; do \
+depend: ${MAKEFILES}
+ @for i in ${SUBDIRS}; do \
echo "Making dependencies in $$i..."; \
cd $$i; ${MAKE} depend; cd ..; \
done
-install:
- @if [ -f ircd/ircd ]; then \
- for i in ircd doc; do \
- echo "Installing $$i..."; \
- cd $$i; ${MAKE} install; cd ..; \
- done \
- else \
- echo "First run 'make'"; \
- fi
-
-uninstall:
- @for i in doc ircd; do \
+install: ${MAKEFILES}
+ test -d ${prefix} || mkdir ${prefix}
+ @for i in ${SUBDIRS}; do \
+ echo "Installing $$i..."; \
+ cd $$i; ${MAKE} install; cd ..; \
+ done
+
+uninstall: ${MAKEFILES}
+ @for i in ${SUBDIRS}; do \
echo "Uninstalling $$i..."; \
cd $$i; ${MAKE} uninstall; cd ..; \
done
-config: FORCE
- @cd config; ${MAKE} config
- @echo
- @echo "The Undernet IRC daemon is now hopefully configured for your setup."
- @echo "Next run 'make' to build the server."
- @echo
+${srcdir}/aclocal.m4: acinclude.m4
+ cd ${srcdir} && aclocal
-# Coders: You need GNU make for this to work.
-Makefile: config/config.status Makefile.in
- @echo "recreating Makefile"
- @cd config; \
- CONFIG_FILES=../Makefile CONFIG_HEADERS= ./config.status > /dev/null
+${srcdir}/configure: configure.in aclocal.m4
+ cd ${srcdir} && autoconf
-config/config.status:
- @cd config; ${MAKE} config.status
+# autoheader might not change config.h.in, so touch a stamp file.
+${srcdir}/config.h.in: stamp-h.in
+${srcdir}/stamp-h.in: configure.in aclocal.m4 acconfig.h
+ cd ${srcdir} && autoheader
+ echo timestamp > ${srcdir}/stamp-h.in
+
+config.h: stamp-h
+stamp-h: config.h.in config.status
+ ./config.status
+
+Makefile: Makefile.in config.status
+ ./config.status
+
+doc/Makefile: doc/Makefile.in config.status
+ ./config.status
+
+ircd/Makefile: ircd/Makefile.in config.status
+ ./config.status
+
+config.status: configure
+ ./config.status --recheck
# Some versions of 'make' do not support the .PHONY target :
FORCE:
@test "`indent --version`" = "GNU indent 2.1.0" || \
(echo "You need GNU indent 2.1.0; See doc/readme.indent" && exit -1);
VERSION_CONTROL=none indent include/*.h ircd/*.c
+
+# do a cvs update
+update:
+ cvs -z9 update