1DESTDIR		=
2
3PREFIX		= /local/netmagis
4
5# Debian repository path
6REPODIR		= /local/repo
7
8# Standard OS directories
9BINDIR		= $(PREFIX)/bin
10SBINDIR		= $(PREFIX)/sbin
11ETCDIR		= $(PREFIX)/etc
12MANDIR		= $(PREFIX)/man
13RCDIR		= $(PREFIX)/etc/rc.d
14CAFILE		= /usr/local/share/certs/ca-root-nss.crt
15
16# Netmagis specific directories
17NMDOCDIR	= $(PREFIX)/share/doc/netmagis
18NMXMPDIR	= $(PREFIX)/share/examples/netmagis
19NMLIBDIR	= $(PREFIX)/lib/netmagis
20NMVARDIR	= /var/netmagis
21NMCGIDIR	= $(PREFIX)/www/netmagis
22NMWSDIR		= $(PREFIX)/www/metro
23
24TCLSH		= /usr/local/bin/tclsh
25NINSTALL	= ./ninstall
26SUBST		= $(TCLSH) \
27			$(NMLIBDIR)/libnetmagis.tcl \
28			$(ETCDIR)/netmagis.conf \
29			$(BINDIR)/netmagis-config
30
31DIRS		= \
32			BINDIR=$(BINDIR) \
33			SBINDIR=$(SBINDIR) \
34			ETCDIR=$(ETCDIR) \
35			MANDIR=$(MANDIR) \
36			RCDIR=$(RCDIR) \
37			CAFILE=$(CAFILE) \
38			NMDOCDIR=$(NMDOCDIR) \
39			NMXMPDIR=$(NMXMPDIR) \
40			NMLIBDIR=$(NMLIBDIR) \
41			NMVARDIR=$(NMVARDIR) \
42			NMCGIDIR=$(NMCGIDIR) \
43			NMWSDIR=$(NMWSDIR) \
44			DESTDIR=$(DESTDIR)
45
46# for www/htg/src
47TCLCONF		= /usr/local/lib/tcl8.6/tclConfig.sh
48TCLCFLAGS	= `(cat $(TCLCONF) ; echo 'echo "$$TCL_INCLUDE_SPEC"')|sh`
49TCLLFLAGS	= `(cat $(TCLCONF) ; echo 'echo "$$TCL_LIB_SPEC $$TCL_LIBS"')|sh`
50
51# for packaging and libnetmagis.tcl
52VERSION		= 2.3.4
53
54# build debian package for the following architectures
55DEBIAN_PKG_ARCH = i386
56# default debian distribution
57DEBIAN_DISTRIB		= dev
58
59usage:
60	@echo "available targets:"
61	@echo "	build"
62	@echo "	build-topo"
63	@echo "	build-www"
64	@echo "	install"
65	@echo "	install-common"
66	@echo "	install-database"
67	@echo "	install-servers"
68	@echo "	install-www"
69	@echo "	install-utils"
70	@echo "	install-detecteq"
71	@echo "	install-topo"
72	@echo "	install-metro"
73	@echo "	install-netmagis.org"
74	@echo "	install-devtools"
75	@echo "	distrib"
76	@echo "	freebsd-ports"
77	@echo "	debian-packages"
78	@echo "	debian-packages-other-arch"
79	@echo "	debian-repo"
80	@echo "	  (with optional variable DEBIAN_DISTRIB=stable)"
81	@echo "	clean"
82	@echo "	nothing"
83
84build: build-www build-topo
85
86build-www:
87	$(MAKE) -C www $(DIRS) SUBST="$(SUBST)" TCLSH=$(TCLSH) \
88		TCLCFLAGS="$(TCLCFLAGS)" TCLLFLAGS="$(TCLLFLAGS)" build
89
90build-topo:
91	$(MAKE) -C topo build
92
93install: install-common install-database install-servers install-utils \
94	    install-detecteq install-topo install-metro install-www
95
96install-common:
97	cd common ; \
98	    make $(DIRS) SUBST="$(SUBST)" TCLSH=$(TCLSH) VERSION=$(VERSION) install
99
100install-database:
101	$(MAKE) -C database $(DIRS) SUBST="$(SUBST)" TCLSH=$(TCLSH) install
102
103install-servers:
104	$(MAKE) -C servers $(DIRS) SUBST="$(SUBST)" TCLSH=$(TCLSH) install
105
106install-www: build-www
107	$(MAKE) -C www $(DIRS) SUBST="$(SUBST)" TCLSH=$(TCLSH) \
108		TCLCFLAGS="$(TCLCFLAGS)" TCLLFLAGS="$(TCLLFLAGS)" install
109
110install-utils:
111	$(MAKE) -C utils $(DIRS) SUBST="$(SUBST)" TCLSH=$(TCLSH) install
112
113install-topo: build-topo
114	$(MAKE) -C topo $(DIRS) SUBST="$(SUBST)" TCLSH=$(TCLSH) install
115
116install-detecteq:
117	$(MAKE) -C detecteq $(DIRS) SUBST="$(SUBST)" TCLSH=$(TCLSH) install
118
119install-metro:
120	$(MAKE) -C metro $(DIRS) SUBST="$(SUBST)" TCLSH=$(TCLSH) install
121
122install-netmagis.org: build-www
123	$(MAKE) -C doc/netmagis.org $(DIRS) SUBST="$(SUBST)" TCLSH=$(TCLSH) install
124
125install-devtools:
126	$(MAKE) -C devtools $(DIRS) SUBST="$(SUBST)" TCLSH=$(TCLSH) install
127
128distrib: clean
129	rm -rf /tmp/netmagis-$(VERSION)
130	mkdir /tmp/netmagis-$(VERSION)
131	tar cf - --exclude "pkg/*" \
132		--exclude "doc/jres/*" \
133		--exclude "doc/pres/*" \
134		--exclude "doc/old/*" \
135		--exclude "doc/netmagis.org" \
136		* \
137	    | tar xf - -C /tmp/netmagis-$(VERSION)
138	tar -czf netmagis-$(VERSION).tar.gz -C /tmp netmagis-$(VERSION)
139	rm -rf /tmp/netmagis-$(VERSION)
140
141freebsd-ports:
142	@if [ `uname -s` != FreeBSD ] ; then \
143	    echo "Please, make this target on a FreeBSD host" ; \
144	    echo "once netmagis-$(VERSION).tar.gz is on the master site" ; \
145	    exit 1 ; \
146	fi
147	for i in pkg/freebsd/netmagis-* ; do ($(MAKE) -C $$i clean) ; done
148	$(MAKE) -C pkg/freebsd/netmagis-common makesum
149	tar -czf netmagis-freebsd-ports-$(VERSION).tar.gz -C pkg/freebsd .
150
151debian-packages:
152	@if [ `uname -s` != Linux ] ; then \
153	    echo "Please, make this target on a Debian/Ubuntu host" ; \
154	    echo "once netmagis-$(VERSION).tar.gz is on the master site" ; \
155	    exit 1 ; \
156	fi
157	$(MAKE) -C pkg/debian VERSION=$(VERSION) release
158
159debian-packages-other-arch:
160	cd pkg/debian ; \
161	for arch in $(DEBIAN_PKG_ARCH) ; do \
162	     make VERSION=$(VERSION) ARCH=$$arch release-arch ; \
163	done
164
165debian-repo:
166	pkg/debian/update-repo $(VERSION) pkg/debian $(DEBIAN_DISTRIB) $(REPODIR)
167
168clean:
169	$(MAKE) -C common clean
170	$(MAKE) -C database clean
171	$(MAKE) -C servers clean
172	$(MAKE) -C www clean
173	$(MAKE) -C utils clean
174	$(MAKE) -C detecteq clean
175	$(MAKE) -C topo clean
176	$(MAKE) -C metro clean
177	rm -f netmagis-*.tar.gz
178
179nothing:
180