root/trunk/make/transmission.mk

Revision 10308, 13.7 kB (checked in by alllexx, 3 weeks ago)

transmission 1.71 -> 1.72

Line 
1 ###########################################################
2 #
3 # transmission
4 #
5 ###########################################################
6 #
7 # TRANSMISSION_VERSION, TRANSMISSION_SITE and TRANSMISSION_SOURCE define
8 # the upstream location of the source code for the package.
9 # TRANSMISSION_DIR is the directory which is created when the source
10 # archive is unpacked.
11 # TRANSMISSION_UNZIP is the command used to unzip the source.
12 # It is usually "zcat" (for .gz) or "bzcat" (for .bz2)
13 #
14 # You should change all these variables to suit your package.
15 # Please make sure that you add a description, and that you
16 # list all your packages' dependencies, seperated by commas.
17 #
18 # If you list yourself as MAINTAINER, please give a valid email
19 # address, and indicate your irc nick if it cannot be easily deduced
20 # from your name or email address.  If you leave MAINTAINER set to
21 # "NSLU2 Linux" other developers will feel free to edit.
22 #
23 #  TRAC: http://trac.transmissionbt.com/timeline
24 #
25 # SVN releases also include transmissiond-dbg while official releases does not.
26 #
27 TRANSMISSION_SITE=http://mirrors.m0k.org/transmission/files
28 TRANSMISSION_VERSION=1.72
29
30 #TRANSMISSION_SVN_REV=8696
31
32 ifdef TRANSMISSION_SVN_REV
33 TRANSMISSION_SVN=svn://svn.transmissionbt.com/Transmission/trunk
34 TRANSMISSION_SOURCE=transmission-svn-$(TRANSMISSION_SVN_REV).tar.bz2
35 else
36 TRANSMISSION_SOURCE=transmission-$(TRANSMISSION_VERSION).tar.bz2
37 endif
38 TRANSMISSION_DIR=transmission-$(TRANSMISSION_VERSION)
39 TRANSMISSION_UNZIP=bzcat
40 TRANSMISSION_MAINTAINER=oleo@email.si
41 TRANSMISSION_DESCRIPTION=Lightweight BitTorrent client and daemon, with web interface bundled.
42 TRANSMISSION_SECTION=net
43 TRANSMISSION_PRIORITY=optional
44 TRANSMISSION_DEPENDS=openssl, libcurl, libevent
45 TRANSMISSION_SUGGESTS=
46 TRANSMISSION_CONFLICTS=
47
48 #
49 # TRANSMISSION_IPK_VERSION should be incremented when the ipk changes.
50 #
51 TRANSMISSION_IPK_VERSION=1
52
53 #
54 # TRANSMISSION_CONFFILES should be a list of user-editable files
55 #TRANSMISSION_CONFFILES=/opt/etc/transmission.conf
56
57 TRANSMISSION_PATCHES = $(TRANSMISSION_SOURCE_DIR)/int64_switch.patch
58
59 #
60 # If the compilation of the package requires additional
61 # compilation or linking flags, then list them here.
62 #
63 TRANSMISSION_CPPFLAGS=-O3 -DTR_EMBEDDED
64 TRANSMISSION_LDFLAGS=
65 TRANSMISSION-DBG_CPPFLAGS=-O0 -g -DTR_EMBEDDED
66 TRANSMISSION-DBG_LDFLAGS=-lefence -lpthread
67 ifeq (uclibc, $(LIBC_STYLE))
68 TRANSMISSION_LDFLAGS+=-lintl
69 TRANSMISSION-DBG_LDFLAGS+=-lintl
70 endif
71 ifeq ($(GETTEXT_NLS), enable)
72 TRANSMISSION_DEPENDS+=, gettext
73 endif
74
75 #
76 # TRANSMISSION_BUILD_DIR is the directory in which the build is done.
77 # TRANSMISSION_SOURCE_DIR is the directory which holds all the
78 # patches and ipkg control files.
79 # TRANSMISSION_IPK_DIR is the directory in which the ipk is built.
80 # TRANSMISSION_IPK is the name of the resulting ipk files.
81 #
82 # You should not change any of these variables.
83 #
84 TRANSMISSION_BUILD_DIR=$(BUILD_DIR)/transmission
85 TRANSMISSION_SOURCE_DIR=$(SOURCE_DIR)/transmission
86 TRANSMISSION_IPK_DIR=$(BUILD_DIR)/transmission-$(TRANSMISSION_VERSION)-ipk
87 ifdef TRANSMISSION_SVN_REV
88 TRANSMISSION_IPK=$(BUILD_DIR)/transmission_$(TRANSMISSION_VERSION)+r$(TRANSMISSION_SVN_REV)-$(TRANSMISSION_IPK_VERSION)_$(TARGET_ARCH).ipk
89 else
90 TRANSMISSION_IPK=$(BUILD_DIR)/transmission_$(TRANSMISSION_VERSION)-$(TRANSMISSION_IPK_VERSION)_$(TARGET_ARCH).ipk
91 endif
92
93 #
94 # TRANSMISSION-DBG_BUILD_DIR is the directory in which the build is done.
95 # TRANSMISSION-DBG_SOURCE_DIR is the directory which holds all the
96 # patches and ipkg control files.
97 # TRANSMISSION-DBG_IPK_DIR is the directory in which the ipk is built.
98 # TRANSMISSION-DBG_IPK is the name of the resulting ipk files.
99 #
100 # You should not change any of these variables.
101 #
102 TRANSMISSION-DBG_BUILD_DIR=$(BUILD_DIR)/transmission-dbg
103 TRANSMISSION-DBG_SOURCE_DIR=$(SOURCE_DIR)/transmission
104 TRANSMISSION-DBG_IPK_DIR=$(BUILD_DIR)/transmission-dbg-$(TRANSMISSION_VERSION)-ipk
105 ifdef TRANSMISSION_SVN_REV
106 TRANSMISSION-DBG_IPK=$(BUILD_DIR)/transmission-dbg_$(TRANSMISSION_VERSION)+r$(TRANSMISSION_SVN_REV)-$(TRANSMISSION_IPK_VERSION)_$(TARGET_ARCH).ipk
107 else
108 TRANSMISSION-DBG_IPK=$(BUILD_DIR)/transmission-dbg_$(TRANSMISSION_VERSION)-$(TRANSMISSION_IPK_VERSION)_$(TARGET_ARCH).ipk
109 endif
110
111 ifeq ($(TRANSMISSION_SOURCE), $(TRANSMISSIOND_SOURCE))
112 TRANSMISSION_SKIP_FETCH=1
113 endif
114
115 #
116 # This is the dependency on the source code.  If the source is missing,
117 # then it will be fetched from the site using wget.
118 #
119 ifndef TRANSMISSION_SKIP_FETCH
120 $(DL_DIR)/$(TRANSMISSION_SOURCE):
121 #       rm -fv  $(DL_DIR)/transmission*.tar.bz2
122 ifdef TRANSMISSION_SVN_REV
123         ( cd $(BUILD_DIR) ; \
124                 rm -rf $(TRANSMISSION_DIR) && \
125                 svn co -r $(TRANSMISSION_SVN_REV) $(TRANSMISSION_SVN) \
126                         $(TRANSMISSION_DIR) && \
127                 tar -cjf $@ $(TRANSMISSION_DIR) && \
128                 rm -rf $(TRANSMISSION_DIR) \
129         )
130 else
131         $(WGET) -P $(@D) $(TRANSMISSION_SITE)/$(@F) || \
132         $(WGET) -P $(@D) $(SOURCES_NLO_SITE)/$(@F)
133 endif
134 endif
135
136 #
137 # The source code depends on it existing within the download directory.
138 # This target will be called by the top level Makefile to download the
139 # source code's archive (.tar.gz, .bz2, etc.)
140 #
141 transmission-source transmission-dbg-source: $(DL_DIR)/$(TRANSMISSION_SOURCE) $(TRANSMISSION_PATCHES)
142
143 #
144 # This target unpacks the source code in the build directory.
145 # If the source archive is not .tar.gz or .tar.bz2, then you will need
146 # to change the commands here.  Patches to the source code are also
147 # applied in this target as required.
148 #
149 # This target also configures the build within the build directory.
150 # Flags such as LDFLAGS and CPPFLAGS should be passed into configure
151 # and NOT $(MAKE) below.  Passing it to configure causes configure to
152 # correctly BUILD the Makefile with the right paths, where passing it
153 # to Make causes it to override the default search paths of the compiler.
154 #
155 # If the compilation of the package requires other packages to be staged
156 # first, then do that first (e.g. "$(MAKE) <bar>-stage <baz>-stage").
157 #
158 # If the package uses  GNU libtool, you should invoke $(PATCH_LIBTOOL) as
159 # shown below to make various patches to it.
160 #
161 # Note that openssl is used only for SHA1 hash calculation and that it looks
162 # better to use Transmission provided (built-in) SHA1 hash
163 #
164 $(TRANSMISSION_BUILD_DIR)/.configured: $(DL_DIR)/$(TRANSMISSION_SOURCE) $(TRANSMISSION_PATCHES) make/transmission.mk
165         $(MAKE) openssl-stage libcurl-stage libevent-stage
166 ifeq ($(GETTEXT_NLS), enable)
167         $(MAKE) gettext-stage
168 endif
169         rm -rf $(BUILD_DIR)/$(TRANSMISSION_DIR) $(@D)
170 ifndef TRANSMISSION_SVN_REV
171         mkdir -p $(BUILD_DIR)/$(TRANSMISSION_DIR)
172 endif
173         $(TRANSMISSION_UNZIP) $(DL_DIR)/$(TRANSMISSION_SOURCE) | tar -C $(BUILD_DIR) -xvf -
174         if test -n "$(TRANSMISSION_PATCHES)" ; \
175                 then cat $(TRANSMISSION_PATCHES) | \
176                 patch -d $(BUILD_DIR)/$(TRANSMISSION_DIR) -p0 ; \
177         fi
178         if test "$(BUILD_DIR)/$(TRANSMISSION_DIR)" != "$(@D)" ; \
179                 then mv $(BUILD_DIR)/$(TRANSMISSION_DIR) $(@D) ; \
180         fi
181 ifdef TRANSMISSION_SVN_REV
182         if test -x "$(@D)/autogen.sh"; \
183         then cd $(@D) && \
184                 PKG_CONFIG_PATH="$(STAGING_LIB_DIR)/pkgconfig" \
185                 ./autogen.sh; \
186         else \
187                 PKG_CONFIG_PATH="$(STAGING_LIB_DIR)/pkgconfig" \
188                 autoreconf -vif $(@D); \
189         fi
190 endif
191         sed -i -e '/FLAGS=/s|-g ||' $(@D)/configure
192         if test `$(TARGET_CC) -dumpversion | cut -c1-3` = "3.3"; then \
193                 sed -i -e '/CFLAGS/s| -Wdeclaration-after-statement||' $(@D)/configure; \
194         fi
195         if test `$(TARGET_CC) -dumpversion | cut -c1` = "3"; then \
196                 sed -i -e '/CFLAGS/s| -Wextra||' -e '/CFLAGS/s| -Winit-self||' $(@D)/configure; \
197         fi
198         (cd $(@D); \
199                 $(TARGET_CONFIGURE_OPTS) \
200                 CPPFLAGS="$(STAGING_CPPFLAGS) $(TRANSMISSION_CPPFLAGS)" \
201                 LDFLAGS="$(STAGING_LDFLAGS) $(TRANSMISSION_LDFLAGS)" \
202                 PKG_CONFIG_PATH="$(STAGING_LIB_DIR)/pkgconfig" \
203                 PKG_CONFIG_LIBDIR="$(STAGING_LIB_DIR)/pkgconfig" \
204                 ./configure \
205                 --build=$(GNU_HOST_NAME) \
206                 --host=$(GNU_TARGET_NAME) \
207                 --target=$(GNU_TARGET_NAME) \
208                 --prefix=/opt \
209                 --datadir=/opt/share \
210                 --disable-gtk \
211                 --disable-wx \
212                 --disable-nls \
213         )
214         $(PATCH_LIBTOOL) $(@D)/libtool
215         touch $@
216
217
218 $(TRANSMISSION-DBG_BUILD_DIR)/.configured: $(DL_DIR)/$(TRANSMISSION_SOURCE) $(TRANSMISSION_PATCHES) make/transmission.mk
219         $(MAKE) openssl-stage electric-fence-stage
220 ifeq ($(GETTEXT_NLS), enable)
221         $(MAKE) gettext-stage
222 endif
223         rm -rf $(BUILD_DIR)/$(TRANSMISSION_DIR) $(@D)
224 ifndef TRANSMISSION_SVN_REV
225         mkdir -p $(BUILD_DIR)/$(TRANSMISSION_DIR)
226 endif
227         $(TRANSMISSION_UNZIP) $(DL_DIR)/$(TRANSMISSION_SOURCE) | tar -C $(BUILD_DIR) -xvf -
228         if test -n "$(TRANSMISSION_PATCHES)" ; \
229                 then cat $(TRANSMISSION_PATCHES) | \
230                 patch -d $(BUILD_DIR)/$(TRANSMISSION_DIR) -p0 ; \
231         fi
232         if test "$(BUILD_DIR)/$(TRANSMISSION_DIR)" != "$(@D)" ; \
233                 then mv $(BUILD_DIR)/$(TRANSMISSION_DIR) $(@D) ; \
234         fi
235         if test -n "$(TRANSMISSION-DBG_SOURCES)"; then cp $(TRANSMISSION-DBG_SOURCES) $(@D)/cli; fi
236 ifdef TRANSMISSION_SVN_REV
237         if test -x "$(@D)/autogen.sh"; \
238         then cd $(@D) && \
239                 PKG_CONFIG_PATH="$(STAGING_LIB_DIR)/pkgconfig" \
240                 ./autogen.sh; \
241         else \
242                 PKG_CONFIG_PATH="$(STAGING_LIB_DIR)/pkgconfig" \
243                 autoreconf -vif $(@D); \
244         fi
245 endif
246         if test `$(TARGET_CC) -dumpversion | cut -c1-3` = "3.3"; then \
247                 sed -i -e 's|-Wdeclaration-after-statement||' $(@D)/configure; \
248         fi
249         (cd $(@D); \
250                 $(TARGET_CONFIGURE_OPTS) \
251                 CPPFLAGS="$(STAGING_CPPFLAGS) $(TRANSMISSION-DBG_CPPFLAGS)" \
252                 LDFLAGS="$(STAGING_LDFLAGS) $(TRANSMISSION-DBG_LDFLAGS)" \
253                 PKG_CONFIG_PATH="$(STAGING_LIB_DIR)/pkgconfig" \
254                 PKG_CONFIG_LIBDIR="$(STAGING_LIB_DIR)/pkgconfig" \
255                 ./configure \
256                 --build=$(GNU_HOST_NAME) \
257                 --host=$(GNU_TARGET_NAME) \
258                 --target=$(GNU_TARGET_NAME) \
259                 --prefix=/opt \
260                 --disable-gtk \
261                 --disable-wx \
262                 --disable-nls \
263         )
264 #               AUTOMAKE=automake-1.9 ACLOCAL=aclocal-1.9 autoreconf -fi -I m4 ; \
265 #               --verbose \
266         $(PATCH_LIBTOOL) $(@D)/libtool
267         touch $@
268
269
270 transmission-unpack: $(TRANSMISSION_BUILD_DIR)/.configured
271
272 #
273 # This builds the actual binary.
274 #
275 $(TRANSMISSION_BUILD_DIR)/.built: $(TRANSMISSION_BUILD_DIR)/.configured $(TRANSMISSION_SOURCES)
276         rm -f $@
277         $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)
278         touch $@
279
280 $(TRANSMISSION-DBG_BUILD_DIR)/.built: $(TRANSMISSION-DBG_BUILD_DIR)/.configured $(TRANSMISSION-DBG_SOURCES)
281         rm -f $@
282         $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)
283         touch $@
284
285 #
286 # This is the build convenience target.
287 #
288 ifdef TRANSMISSION_SVN_REV
289 transmission: $(TRANSMISSION_BUILD_DIR)/.built $(TRANSMISSION-DBG_BUILD_DIR)/.built
290 else
291 transmission: $(TRANSMISSION_BUILD_DIR)/.built
292 endif
293
294 #
295 # If you are building a library, then you need to stage it too.
296 #
297 $(TRANSMISSION_BUILD_DIR)/.staged: $(TRANSMISSION_BUILD_DIR)/.built
298         rm -f $@
299         $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install
300         touch $@
301
302 transmission-stage: $(TRANSMISSION_BUILD_DIR)/.staged
303
304 #
305 # This rule creates a control file for ipkg. 
306 #
307 $(TRANSMISSION_IPK_DIR)/CONTROL/control:
308         @install -d $(@D)
309         @rm -f $@
310         @echo "Package: transmission" >>$@
311         @echo "Architecture: $(TARGET_ARCH)" >>$@
312         @echo "Priority: $(TRANSMISSION_PRIORITY)" >>$@
313         @echo "Section: $(TRANSMISSION_SECTION)" >>$@
314 ifdef TRANSMISSION_SVN_REV
315         @echo "Version: $(TRANSMISSION_VERSION)+r$(TRANSMISSION_SVN_REV)-$(TRANSMISSION_IPK_VERSION)" >>$@
316 else
317         @echo "Version: $(TRANSMISSION_VERSION)-$(TRANSMISSION_IPK_VERSION)" >>$@
318 endif
319         @echo "Maintainer: $(TRANSMISSION_MAINTAINER)" >>$@
320         @echo "Source: $(TRANSMISSION_SITE)/$(TRANSMISSION_SOURCE)" >>$@
321         @echo "Description: $(TRANSMISSION_DESCRIPTION)" >>$@
322         @echo "Depends: $(TRANSMISSION_DEPENDS)" >>$@
323         @echo "Suggests: $(TRANSMISSION_SUGGESTS)" >>$@
324         @echo "Conflicts: $(TRANSMISSION_CONFLICTS)" >>$@
325
326 #
327 # This builds the IPK file.
328 #
329 # Binaries should be installed into $(TRANSMISSION_IPK_DIR)/opt/sbin or $(TRANSMISSION_IPK_DIR)/opt/bin
330 # (use the location in a well-known Linux distro as a guide for choosing sbin or bin).
331 # Libraries and include files should be installed into $(TRANSMISSION_IPK_DIR)/opt/{lib,include}
332 # Configuration files should be installed in $(TRANSMISSION_IPK_DIR)/opt/etc/transmission/...
333 # Documentation files should be installed in $(TRANSMISSION_IPK_DIR)/opt/doc/transmission/...
334 # Daemon startup scripts should be installed in $(TRANSMISSION_IPK_DIR)/opt/etc/init.d/S??transmission
335 #
336 # You may need to patch your application to make it use these locations.
337 #
338 ifdef TRANSMISSION_SVN_REV
339 $(TRANSMISSION_IPK): $(TRANSMISSION_BUILD_DIR)/.built \
340 # $(TRANSMISSION-DBG_BUILD_DIR)/.built
341 else
342 $(TRANSMISSION_IPK): $(TRANSMISSION_BUILD_DIR)/.built
343 endif
344         rm -rf $(TRANSMISSION_IPK_DIR) $(BUILD_DIR)/transmission_*_$(TARGET_ARCH).ipk
345         install -d $(TRANSMISSION_IPK_DIR)/opt
346         $(MAKE) -C $(TRANSMISSION_BUILD_DIR) DESTDIR=$(TRANSMISSION_IPK_DIR) install-strip
347 #       install -d $(TRANSMISSION_IPK_DIR)/opt/etc
348 #       install -m 644 $(TRANSMISSION_SOURCE_DIR)/transmission.conf $(TRANSMISSION_IPK_DIR)/opt/etc/transmission.conf
349         install -d $(TRANSMISSION_IPK_DIR)/opt/share/doc/transmission
350         install -m 666 $(TRANSMISSION_BUILD_DIR)/[CNR]*  $(TRANSMISSION_IPK_DIR)/opt/share/doc/transmission
351         install -d $(TRANSMISSION_IPK_DIR)/opt/var/log
352         install -d $(TRANSMISSION_IPK_DIR)/opt/var/run
353         $(MAKE) $(TRANSMISSION_IPK_DIR)/CONTROL/control
354         echo $(TRANSMISSION_CONFFILES) | sed -e 's/ /\n/g' > $(TRANSMISSION_IPK_DIR)/CONTROL/conffiles
355         cd $(BUILD_DIR); $(IPKG_BUILD) $(TRANSMISSION_IPK_DIR)
356
357 #
358 # This is called from the top level makefile to create the IPK file.
359 #
360 transmission-ipk: $(TRANSMISSION_IPK)
361
362 #
363 # This is called from the top level makefile to clean all of the built files.
364 #
365 transmission-clean:
366         rm -f $(TRANSMISSION_BUILD_DIR)/.built
367         -$(MAKE) -C $(TRANSMISSION_BUILD_DIR) clean
368         rm -f $(TRANSMISSION-DBG_BUILD_DIR)/.built
369         -$(MAKE) -C $(TRANSMISSION-DBG_BUILD_DIR) clean
370
371 #
372 # This is called from the top level makefile to clean all dynamically created
373 # directories.
374 #
375 transmission-dirclean:
376         rm -rf $(BUILD_DIR)/$(TRANSMISSION_DIR) $(TRANSMISSION_BUILD_DIR) $(TRANSMISSION_IPK_DIR) $(TRANSMISSION_IPK)
377         rm -rf $(TRANSMISSION-DBG_BUILD_DIR)
378
379 #
380 # Some sanity check for the package.
381 # Non stripped transmissiond-dbg is intentional
382 transmission-check: $(TRANSMISSION_IPK)
383         perl scripts/optware-check-package.pl --target=$(OPTWARE_TARGET) $^
Note: See TracBrowser for help on using the browser.