]> git.ipfire.org Git - people/stevee/aiccu.git/blob - Makefile
Add setup script functionality to Linux client
[people/stevee/aiccu.git] / Makefile
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
15 PROJECT=aiccu
16 PROJECT_DESC="Automatic IPv6 Connectivity Configuration Utility"
17 PROJECT_VERSION=$(shell grep "AICCU_VER" common/aiccu.h | head -n 1 | awk '{print $$3}' | tr -d \")
18
19 # Misc bins
20 RM=@rm -f
21 MAKE:=@${MAKE}
22 CP=@echo [Copy]; cp
23 RPMBUILD=@echo [RPMBUILD]; rpmbuild
24 RPMBUILD_SILENCE=>/dev/null 2>/dev/null
25
26 # Excludes for limited source release
27 EXCLUDES=--exclude "${PROJECT}/windows-*" --exclude "${PROJECT}/common/aiccu_win32.c" --exclude CVS --exclude "${PROJECT}/common/tsp*" --exclude "${PROJECT}/common/teepee*"
28 DEBEXCL=-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
32 DESTDIR=
33 export DESTDIR
34
35 # This may be updated by RPM's for instance
36 CFLAGS=${RPM_OPT_FLAGS}
37
38 # Destination Paths (relative to DESTDIR)
39 dirsbin=/usr/sbin/
40 dirbin=/usr/bin/
41 diretc=/etc/
42 dirdoc=/usr/share/doc/${PROJECT}/
43
44 # Make sure the lower makefile also knows these
45 export PROJECT
46 export PROJECT_DESC
47 export PROJECT_VERSION
48 export PROJECT_COPYRIGHT
49 export DESTDIR
50 export RM
51 export MV
52 export CC
53 export CP
54 export MAKE
55 export dirsbin
56 export dirbin
57 export diretc
58 export dirdoc
59 export RPM_OPT_FLAGS
60 export CFLAGS
61
62 ####################
63 ## Makefile Targets
64 ####################
65
66 all: 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
73 install: 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}
81 ifeq ($(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}
90 else
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
95 endif
96 @echo "Installation into ${DESTDIR}/ completed"
97
98 help:
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
120 aiccu: doc unix-console/
121 $(MAKE) -C unix-console all
122
123 doc: doc/aiccu.1
124
125 doc/aiccu.1: doc/aiccu.sgml
126 docbook-to-man doc/aiccu.sgml >doc/aiccu.1
127
128 clean: 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
140 dist: tar bz2 deb
141
142 # tar.gz
143 tar: 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)
148 tarfull: clean
149 -${RM} ../${PROJECT}_${PROJECT_VERSION}.tar.gz
150 tar -zco -C .. -f ../${PROJECT}_${PROJECT_VERSION}-full.tar.gz ${PROJECT}
151
152 # tar.bz2
153 bz2: 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)
158 bz2full: clean
159 -${RM} ../${PROJECT}_${PROJECT_VERSION}.tar.bz2
160 tar -jco -C .. -f ../${PROJECT}_${PROJECT_VERSION}-full.tar.bz2 ${PROJECT}
161
162 # .deb
163 deb: 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
171 debclean:
172 -${RM} debian/${PROJECT}.init debian/${PROJECT}.conffiles
173 if [ -f build-stamp ]; then debian/rules clean; fi
174
175 # RPM
176 rpm: 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
186 rpmsrc: 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
196 rpmclean:
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