]> git.ipfire.org Git - people/stevee/aiccu.git/blame - Makefile
allow tunnels
[people/stevee/aiccu.git] / Makefile
CommitLineData
d98f6a46
SS
1# /**********************************************************
2# SixXS - Automatic IPv6 Connectivity Configuration Utility
3# ***********************************************************
4# Copyright 2003-2005 SixXS - http://www.sixxs.net
5# ***********************************************************
6# Packaging Makefile
7# ***********************************************************
8# $Author: jeroen $
9# $Id: Makefile,v 1.22 2007-01-11 00:29:33 jeroen Exp $
10# $Date: 2007-01-11 00:29:33 $
11# **********************************************************/
12#
13# Note for BSD people: use GNU Make (gmake)
14
15PROJECT=aiccu
16PROJECT_DESC="Automatic IPv6 Connectivity Configuration Utility"
17PROJECT_VERSION=$(shell grep "AICCU_VER" common/aiccu.h | head -n 1 | awk '{print $$3}' | tr -d \")
18
19# Misc bins
20RM=@rm -f
21MAKE:=@${MAKE}
22CP=@echo [Copy]; cp
23RPMBUILD=@echo [RPMBUILD]; rpmbuild
24RPMBUILD_SILENCE=>/dev/null 2>/dev/null
25
26# Excludes for limited source release
27EXCLUDES=--exclude "${PROJECT}/windows-*" --exclude "${PROJECT}/common/aiccu_win32.c" --exclude CVS --exclude "${PROJECT}/common/tsp*" --exclude "${PROJECT}/common/teepee*"
28DEBEXCL=-Iwindows-* -Icommon/aiccu_win32.c -I*CVS* -Icommon/tsp* -Icommon/teepee*
29
30# Change this if you want to install into another dirtree
31# Required for eg the Debian Package builder
32DESTDIR=
33export DESTDIR
34
35# This may be updated by RPM's for instance
36CFLAGS=${RPM_OPT_FLAGS}
37
38# Destination Paths (relative to DESTDIR)
39dirsbin=/usr/sbin/
40dirbin=/usr/bin/
41diretc=/etc/
42dirdoc=/usr/share/doc/${PROJECT}/
43
44# Make sure the lower makefile also knows these
45export PROJECT
46export PROJECT_DESC
47export PROJECT_VERSION
48export PROJECT_COPYRIGHT
49export DESTDIR
50export RM
51export MV
52export CC
53export CP
54export MAKE
55export dirsbin
56export dirbin
57export diretc
58export dirdoc
59export RPM_OPT_FLAGS
60export CFLAGS
61
62####################
63## Makefile Targets
64####################
65
66all: Makefile unix-console/
67 @echo "Building : $(PROJECT) - $(PROJECT_DESC)"
68 @echo "Copyright : SixXS"
69 @echo "Version : $(PROJECT_VERSION)"
70 $(MAKE) -C unix-console all
71 @echo "Building done"
72
73install: aiccu
74 @echo "Installing into ${DESTDIR}..."
75 @echo "Binaries..."
76 @mkdir -p ${DESTDIR}${dirsbin}
77 $(MAKE) -C unix-console install
78 @mkdir -p ${DESTDIR}${dirdoc}
79 @echo "Configuration..."
80 @mkdir -p ${DESTDIR}${diretc}
81ifeq ($(shell echo "A${RPM_BUILD_ROOT}"),A)
82 $(shell [ -f ${DESTDIR}${diretc}${PROJECT}.conf ] || cp -R doc/${PROJECT}.conf ${DESTDIR}${diretc}${PROJECT}.conf)
83 @echo "Documentation..."
84 @cp doc/README ${DESTDIR}${dirdoc}
85 @cp doc/LICENSE ${DESTDIR}${dirdoc}
86 @cp doc/HOWTO ${DESTDIR}${dirdoc}
87 @echo "Installing Debian-style init.d"
88 @mkdir -p ${DESTDIR}${diretc}init.d
89 @cp doc/${PROJECT}.init.debian ${DESTDIR}${diretc}init.d/${PROJECT}
90else
91 @echo "Installing Redhat-style init.d"
92 @mkdir -p ${DESTDIR}${diretc}init.d
93 @cp doc/${PROJECT}.init.rpm ${DESTDIR}${diretc}init.d/${PROJECT}
94 @cp doc/${PROJECT}.conf ${DESTDIR}${diretc}${PROJECT}.conf
95endif
96 @echo "Installation into ${DESTDIR}/ completed"
97
98help:
99 @echo "$(PROJECT) - $(PROJECT_DESC)"
100 @echo
101 @echo "Makefile targets:"
102 @echo "all : Build everything"
103 @echo "help : This little text"
104 @echo "install : Build & Install into ${DESTDIR}/"
105 @echo "clean : Clean the dirs to be pristine in bondage"
106 @echo
107 @echo "Distribution targets:"
108 @echo "dist : Make all distribution targets (except rpm's)"
109 @echo "tar : Make source tarball (tar.gz)"
110 @echo "bz2 : Make source tarball (tar.bz2)"
111 @echo "deb : Make Debian binary package (.deb)"
112 @echo "debsrc : Make Debian source packages"
113 @echo "rpm : Make RPM package (.rpm)"
114 @echo "rpmsrc : Make RPM source packages"
115 @echo
116 @echo "SixXS targets:"
117 @echo "tarfull : Full tar including Windows directories"
118 @echo "bz2full : Full bz2 including Windows directories"
119
120aiccu: doc unix-console/
121 $(MAKE) -C unix-console all
122
123doc: doc/aiccu.1
124
125doc/aiccu.1: doc/aiccu.sgml
126 docbook-to-man doc/aiccu.sgml >doc/aiccu.1
127
128clean: debclean rpmclean
129 $(MAKE) -C unix-console clean
130 -${RM} -r windows-gui/Debug
131 -${RM} -r windows-gui/Release
132 -${RM} windows-gui/AICCU.APS
133 -${RM} windows-gui/AICCU.ncb
134 -${RM} -r windows-console/Debug
135 -${RM} -r windows-console/Release
136 -${RM} windows-console/AICCU.APS
137 -${RM} windows-console/AICCU.ncb
138
139# Generate Distribution files
140dist: tar bz2 deb
141
142# tar.gz
143tar: clean
144 -${RM} ../${PROJECT}_${PROJECT_VERSION}.tar.gz
145 tar -zco -C .. ${EXCLUDES} -f ../${PROJECT}_${PROJECT_VERSION}.tar.gz ${PROJECT}
146
147# tar.gz (full)
148tarfull: clean
149 -${RM} ../${PROJECT}_${PROJECT_VERSION}.tar.gz
150 tar -zco -C .. -f ../${PROJECT}_${PROJECT_VERSION}-full.tar.gz ${PROJECT}
151
152# tar.bz2
153bz2: clean
154 -${RM} ../${PROJECT}_${PROJECT_VERSION}.tar.bz2
155 tar -jco -C .. ${EXCLUDES} -f ../${PROJECT}_${PROJECT_VERSION}.tar.bz2 ${PROJECT}
156
157# tar.bz2 (full)
158bz2full: clean
159 -${RM} ../${PROJECT}_${PROJECT_VERSION}.tar.bz2
160 tar -jco -C .. -f ../${PROJECT}_${PROJECT_VERSION}-full.tar.bz2 ${PROJECT}
161
162# .deb
163deb: clean
164 # Copy the changelog
165 ${CP} doc/changelog debian/changelog
166 ${CP} doc/${PROJECT}.init.debian debian/${PROJECT}.init
167 dpkg-buildpackage $(DEBEXCL) -rfakeroot
168 ${MAKE} clean
169
170# Cleanup after debian
171debclean:
172 -${RM} debian/${PROJECT}.init debian/${PROJECT}.conffiles
173 if [ -f build-stamp ]; then debian/rules clean; fi
174
175# RPM
176rpm: clean tar
177 -${RM} /usr/src/redhat/RPMS/i386/${PROJECT}-*.rpm
178 ${RPMBUILD} -tb --define '${PROJECT}_version ${PROJECT_VERSION}' ../${PROJECT}_${PROJECT_VERSION}.tar.gz ${RPMBUILD_SILENCE}
179 @if [ -d /usr/src/redhat/RPMS/i386/ ]; then mv /usr/src/redhat/RPMS/i386/${PROJECT}-*.rpm ../; fi
180 @if [ -d /usr/src/rpm/RPMS/i386/ ]; then mv /usr/src/rpm/RPMS/i386/${PROJECT}-*.rpm ../; fi
181 @echo "Resulting RPM's:"
182 @ls -l ../${PROJECT}-*.rpm
183 ${MAKE} clean
184 @echo "RPMBuild done"
185
186rpmsrc: clean tar
187 -${RM} /usr/src/redhat/RPMS/i386/${PROJECT}-*src.rpm
188 ${RPMBUILD} -ts --define '${PROJECT}_version ${PROJECT_VERSION}' ../${PROJECT}_${PROJECT_VERSION}.tar.gz ${RPMBUILD_SILENCE}
189 @if [ -d /usr/src/redhat/RPMS/i386/ ]; then mv /usr/src/redhat/RPMS/i386/${PROJECT}-*.src.rpm ../; fi
190 @if [ -d /usr/src/rpm/RPMS/i386/ ]; then mv /usr/src/rpm/RPMS/i386/${PROJECT}-*.src.rpm ../; fi
191 @echo "Resulting RPM's:"
192 @ls -l ../${PROJECT}-*.rpm
193 ${MAKE} clean
194 @echo "RPMBuild-src done"
195
196rpmclean:
197 -${RM} ../${PROJECT}_${PROJECT_VERSION}.tar.gz
198
199# Mark targets as phony
200.PHONY : all install help clean dist tar bz2 deb debclean rpm rpmsrc
201