1
dnl Granularly define the version components
2
dnl Remember to also update the Display Version
3
m4_define([fspot_version_major], [0])
4
m4_define([fspot_version_minor], [9])
5
m4_define([fspot_version_micro], [0])
6
7
dnl set to 0 when doing an official release
8
m4_define([fspot_version_pre_release], [0])
9
10
m4_define([concat], $1$2$3$4)
11
12
dnl create base version string
13
m4_define([fspot_version], concat(
14
	fspot_version_major.,
15
	fspot_version_minor.,
16
	fspot_version_micro))
17
18
dnl create the release version
19
m4_define([fspot_version],
20
	m4_if(fspot_version_pre_release, [0],
21
		fspot_version,
22
		concat(fspot_version, fspot_version_pre_release)))
23
24
dnl this can sometimes differ manually
25
m4_define([fspot_display_version],
26
	["0.9.0"])
27
28
m4_define([fspot_api_version],
29
	[fspot_version_major.fspot_version_minor])
30
31
m4_define([fspot_asm_version],
32
	[fspot_api_version.0.0])
33
34
AC_PREREQ(2.52)
35
AC_INIT([f-spot], fspot_version,
36
	[http://bugzilla.gnome.org/enter_bug.cgi?product=f-spot])
37
38
AM_INIT_AUTOMAKE([1.9 dist-bzip2 tar-ustar dist-zip foreign])
39
AM_MAINTAINER_MODE
40
AM_CONFIG_HEADER([config.h])
41
AC_CONFIG_MACRO_DIR([build/m4])
42
AC_SUBST([ACLOCAL_AMFLAGS], ["-I build/m4/shamrock -I build/m4/f-spot -I build/m4/shave \${ACLOCAL_FLAGS}"])
43
44
IT_PROG_INTLTOOL([0.35.0])
45
AC_PROG_LIBTOOL
46
AC_PROG_INSTALL
47
48
dnl How to configure for distcheck
49
DISTCHECK_CONFIGURE_FLAGS="--disable-docs --enable-release"
50
AC_SUBST(DISTCHECK_CONFIGURE_FLAGS)
51
52
dnl Export Version Info
53
AC_SUBST([API_VERSION], [fspot_api_version])
54
AC_SUBST([ASM_VERSION], [fspot_asm_version])
55
AC_SUBST([DISPLAY_VERSION], [fspot_display_version])
56
57
dnl Expansions
58
SHAMROCK_EXPAND_LIBDIR
59
SHAMROCK_EXPAND_BINDIR
60
SHAMROCK_EXPAND_DATADIR
61
62
dnl User help
63
SHAMROCK_CHECK_GNOME_DOC_UTILS(0.17.3)
64
65
dnl Mono and gmcs
66
SHAMROCK_CHECK_MONO_MODULE(2.2)
67
SHAMROCK_FIND_MONO_2_0_COMPILER
68
SHAMROCK_FIND_MONO_RUNTIME
69
SHAMROCK_CHECK_MONO_2_0_GAC_ASSEMBLIES([
70
    Mono.Posix
71
    Mono.Simd
72
    System
73
    System.Runtime.Remoting
74
    System.Web
75
    System.Web.Services
76
    System.Data
77
    Mono.Cairo
78
    ICSharpCode.SharpZipLib
79
])
80
81
FSPOT_CHECK_LIBFSPOT
82
dnl --- Checks for gtk-sharp and glib-sharp
83
FSPOT_CHECK_GTK_SHARP
84
FSPOT_CHECK_GNOME_KEYRING_SHARP
85
FSPOT_CHECK_FLICKRNET
86
SHAMROCK_CHECK_NUNIT
87
FSPOT_CHECK_MONO_ADDINS
88
FSPOT_CHECK_DBUS_SHARP
89
FSPOT_CHECK_TAGLIB_SHARP
90
FSPOT_CHECK_GNOME_SHARP
91
92
93
94
# ---------------------------------- <Old build stuff>
95
dnl --- Check for mono and gmcs
96
97
AC_PATH_PROG(MONO, mono)
98
AC_PATH_PROG(MCS, gmcs)
99
100
CS="C#"
101
if test ! -x "$MCS"; then
102
	AC_MSG_ERROR([No $CS compiler found])
103
fi
104
105
dnl --- Check for gapi programs
106
107
AC_PATH_PROG(GAPI2FIXUP, gapi2-fixup, no)
108
109
if test ! -x "$GAPI2FIXUP"; then
110
	AC_MSG_ERROR([No gapi post-processor found])
111
fi
112
113
AC_PATH_PROG(GAPI2PARSER, gapi2-parser, no)
114
115
if test ! -x "$GAPI2PARSER"; then
116
	AC_MSG_ERROR([No gapi parser found])
117
fi
118
119
AC_PATH_PROG(GAPI2CODEGEN, gapi2-codegen, no)
120
121
if test ! -x "$GAPI2CODEGEN"; then
122
	AC_MSG_ERROR([No gapi code generator found])
123
fi
124
125
dnl -- Check for mono pc file
126
127
AC_MSG_CHECKING([for mono.pc])
128
if test -z `$PKG_CONFIG --variable=prefix mono`; then
129
  AC_MSG_ERROR([missing the mono.pc file, usually found in the mono-devel package])
130
else
131
  AC_MSG_RESULT([found])
132
fi
133
134
dnl --- Required libraries
135
136
LIBGNOMEDESKTOP_REQUIRED=2.17
137
GIO_REQUIRED=2.22.0
138
GTKSHARPBEANS_REQUIRED=2.13.92
139
GTK_REQUIRED=2.14
140
MONO_CAIRO_REQUIRED=1.2.5
141
CAIRO_REQUIRED=1.4.0
142
LCMS_REQUIRED=1.12
143
144
PKG_CHECK_MODULES(F, gnome-desktop-2.0 >= $LIBGNOMEDESKTOP_REQUIRED gtk+-2.0 >= $GTK_REQUIRED mono-cairo >= $MONO_CAIRO_REQUIRED cairo >= $CAIRO_REQUIRED)
145
AC_SUBST(F_CFLAGS)
146
AC_SUBST(F_LIBS)
147
148
PKG_CHECK_MODULES(GIO, gio-2.0 >= $GIO_REQUIRED)
149
AC_SUBST(GIO_CFLAGS)
150
AC_SUBST(GIO_LIBS)
151
152
CSC_DEFINES=""
153
PKG_CHECK_MODULES(GNOME_SHARP, gnome-sharp-2.0 >= 2.8)
154
155
PKG_CHECK_MODULES(GLIBSHARP, glib-sharp-2.0 >= 2.12)
156
157
if pkg-config --atleast-version=2.13.0 gtk-sharp-2.0 && pkg-config --max-version=2.14 gtk-sharp-2.0; then
158
	AC_MSG_ERROR([There is a svn version of gtk-sharp 2.13.x installed. Uninstall it.])
159
fi
160
161
dnl --- GConf
162
AC_PATH_PROG(GCONFTOOL, gconftool-2)
163
AM_GCONF_SOURCE_2
164
PKG_CHECK_MODULES(GCONF_SHARP, gconf-sharp-2.0 >= $GTKSHARP_REQUIRED)
165
if pkg-config --atleast-version=2.18 gconf-sharp-2.0; then
166
	CSC_DEFINES="$CSC_DEFINES -d:GCONF_SHARP_2_18"
167
fi
168
if pkg-config --atleast-version=2.20.2 gconf-sharp-2.0; then
169
	CSC_DEFINES="$CSC_DEFINES -d:GCONF_SHARP_2_20_2"
170
fi
171
172
if pkg-config --atleast-version=2.16 gtk+-2.0; then
173
	CSC_DEFINES="$CSC_DEFINES -d:GTK_2_16"
174
fi
175
176
AC_SUBST(CSC_DEFINES)
177
178
dnl --- libjpeg
179
180
AC_CHECK_LIB(jpeg, jpeg_start_decompress, [],
181
	     [AC_MSG_ERROR([libjpeg not found])], -lm)
182
AC_CHECK_HEADER(jpeglib.h, , [AC_MSG_ERROR([libjpeg not found])])
183
LIBJPEG='-ljpeg'
184
185
dnl --- lcms
186
187
PKG_CHECK_MODULES(LCMS, lcms >= $LCMS_REQUIRED, [], 
188
	[AC_CHECK_LIB(lcms, cmsCreateBCHSWabstractProfile, [],
189
		     [AC_MSG_ERROR([liblcms not found])], -lm)
190
	AC_CHECK_HEADER(lcms.h, , [AC_MSG_ERROR([liblcms not found])])
191
	LCMS_LIBS='-llcms'
192
	LCMS_CFLAGS=''])
193
194
dnl --- libunique check
195
PKG_CHECK_MODULES(UNIQUE, unique-1.0 >= 1.0)
196
197
dnl --- Set up paths
198
199
AC_ARG_WITH(turtle, [ --with-turtle=DIR                set path to source directory for turtle])
200
AM_CONDITIONAL(WITH_TURTLE, test "x$with_turtle" != "xno")
201
if test "x$with_turtle" != "xno"; then
202
   TURTLEDIR=$with_turtle
203
204
   AC_SUBST(TURTLEDIR)
205
fi
206
207
AC_ARG_WITH(gnome-screensaver,
208
    [ --with-gnome-screensaver=PREFIX  set gnome gnome-screensaver prefix],
209
    gnome_screensaver_prefix=$with_gnome_screensaver,
210
    gnome_screensaver_prefix=$prefix)
211
212
AC_ARG_WITH(gnome-screensaver-privlibexecdir,
213
    [ --with-gnome-screensaver-privlibexecdir=DIR  set gnome-screensaver privlibexecdir],
214
    GNOME_SCREENSAVER_SAVERDIR=$with_gnome_screensaver_privlibexecdir,
215
    if test -d $gnome_screensaver_prefix/lib/gnome-screensaver; then
216
        GNOME_SCREENSAVER_SAVERDIR=$gnome_screensaver_prefix/lib/gnome-screensaver
217
    else
218
        GNOME_SCREENSAVER_SAVERDIR=$gnome_screensaver_prefix/libexec/gnome-screensaver
219
    fi)
220
221
AC_ARG_WITH(gnome-screensaver-themesdir,
222
    [ --with-gnome-screensaver-themesdir=DIR  set gnome-screensaver themesdir],
223
    GNOME_SCREENSAVER_THEMESDIR=$with_gnome_screensaver_themesdir,
224
    GNOME_SCREENSAVER_THEMESDIR=$gnome_screensaver_prefix/share/applications/screensavers
225
    )
226
227
AC_SUBST(GNOME_SCREENSAVER_SAVERDIR)
228
AC_SUBST(GNOME_SCREENSAVER_THEMESDIR)
229
230
ICONS_DIRECTORY=${datadir}/${PACKAGE}-${VERSION}
231
232
AC_SUBST(ICONS_DIRECTORY)
233
234
dnl -- Intl
235
236
GETTEXT_PACKAGE=f-spot
237
AC_SUBST(GETTEXT_PACKAGE)
238
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package])
239
AM_GLIB_GNU_GETTEXT
240
241
dnl --- Prologue
242
243
AC_SUBST(LIBJPEG)
244
AC_SUBST(LCMS_LIBS)
245
AC_SUBST(LCMS_CFLAGS)
246
AC_SUBST(CFLAGS)
247
AC_SUBST(CPPFLAGS)
248
AC_SUBST(LDFLAGS)
249
250
AC_CONFIG_FILES([src/Clients/MainApp/f-spot],[chmod +x src/Clients/MainApp/f-spot])
251
252
GNOME_ICON_THEME_PREFIX=`$PKG_CONFIG --variable=prefix gnome-icon-theme`
253
AC_SUBST(GNOME_ICON_THEME_PREFIX)
254
255
# ---------------------------------- </Old build stuff>
256
257
AC_ARG_ENABLE(release,
258
	AC_HELP_STRING([--enable-release],
259
		[Use release configuration]),
260
	enable_release=yes, enable_release=`(test ! -d .svn && test ! -d .git) && echo "yes" || echo "no"`)
261
AM_CONDITIONAL(ENABLE_RELEASE, test "x$enable_release" = "xyes")
262
ENABLE_RELEASE=$enable_release
263
AC_SUBST(ENABLE_RELEASE)
264
if test "x$enable_release" = "xyes"; then
265
	GMCS_FLAGS="-define:RELEASE"
266
# FIXME: Enable as soon as we rock sufficiently
267
#else
268
#	GMCS_FLAGS="-warnaserror"
269
fi
270
AC_SUBST(GMCS_FLAGS)
271
272
AM_CONDITIONAL(HYENA_PKG_CONFIG, false)
273
274
AC_ARG_WITH(vendor-build-id,
275
	AC_HELP_STRING([--with-vendor-build-id=<vendor-build-id>],
276
		[Set a vendor build ID, recommended for packagers]),
277
	[vendor_build_id="$withval"], [
278
		test -d .git \
279
			&& vendor_build_id="git-checkout" \
280
			|| vendor_build_id="source-tarball"
281
	])
282
BUILD_VENDOR_ID="$vendor_build_id"
283
BUILD_HOST_OS="$host_os"
284
BUILD_HOST_CPU="$host_cpu"
285
BUILD_TIME=`date +"%F %T %Z"`
286
AC_SUBST(BUILD_VENDOR_ID)
287
AC_SUBST(BUILD_HOST_OS)
288
AC_SUBST(BUILD_HOST_CPU)
289
AC_SUBST(BUILD_TIME)
290
291
SHAVE_INIT([build/m4/shave], [enable])
292
293
dnl generated files
294
AC_OUTPUT([
295
Makefile
296
297
build/Makefile
298
build/m4/Makefile
299
build/m4/shave/shave
300
build/m4/shave/shave-libtool
301
build/pkg-config/Makefile
302
303
data/Makefile
304
data/desktop-files/Makefile
305
data/desktop-files/f-spot.desktop.in
306
data/desktop-files/f-spot-view.desktop.in
307
data/desktop-files/f-spot-import.desktop.in
308
309
help/Makefile
310
311
lib/gio-sharp/generator/Makefile
312
lib/gio-sharp/gio/Makefile
313
lib/gio-sharp/Makefile
314
lib/GKeyFile/Makefile
315
lib/gtk-sharp-beans/Makefile
316
lib/Hyena/build/m4/Makefile
317
lib/Hyena/build/Makefile
318
lib/Hyena/build/pkg-config/Makefile
319
lib/Hyena/Hyena.Data.Sqlite/Makefile
320
lib/Hyena/Hyena.Gui/Makefile
321
lib/Hyena/Hyena/Makefile
322
lib/Hyena/Makefile
323
lib/libfspot/Makefile
324
lib/Makefile
325
lib/Mono.Google/Makefile
326
lib/Mono.Tabblo/Makefile
327
lib/SmugMugNet/Makefile
328
lib/unique-sharp/generator/Makefile
329
lib/unique-sharp/Makefile
330
lib/unique-sharp/unique/Makefile
331
332
src/AssemblyInfo.cs
333
334
src/Makefile
335
src/Core/Makefile
336
src/Core/FSpot.Bling/Makefile
337
src/Core/FSpot.Cms/Makefile
338
src/Core/FSpot.Cms/FSpot.Cms.dll.config
339
src/Core/FSpot.Core/Makefile
340
src/Core/FSpot.Core/FSpot.Core.dll.config
341
src/Core/FSpot.Core/FSpot.Core/Defines.cs
342
src/Core/FSpot.JobScheduler/Makefile
343
src/Core/FSpot.Utils/Makefile
344
src/Core/FSpot.Utils/FSpot.Utils.dll.config
345
src/Core/FSpot.Query/Makefile
346
src/Core/FSpot.Gui/Makefile
347
src/Core/FSpot.Gui/FSpot.Gui.dll.config
348
src/Core/FSpot.Platform/Makefile
349
350
src/Clients/Makefile
351
src/Clients/MainApp/Makefile
352
src/Clients/MainApp/f-spot.exe.config
353
354
src/Extensions/Makefile
355
src/Extensions/Editors/Makefile
356
src/Extensions/Editors/FSpot.Editors.Blackout/Makefile
357
src/Extensions/Editors/FSpot.Editors.BW/Makefile
358
src/Extensions/Editors/FSpot.Editors.Flip/Makefile
359
src/Extensions/Editors/FSpot.Editors.Pixelate/Makefile
360
src/Extensions/Editors/FSpot.Editors.Resize/Makefile
361
src/Extensions/Exporters/Makefile
362
src/Extensions/Exporters/FSpot.Exporters.CD/Makefile
363
src/Extensions/Exporters/FSpot.Exporters.Flickr/Makefile
364
src/Extensions/Exporters/FSpot.Exporters.Gallery/Makefile
365
src/Extensions/Exporters/FSpot.Exporters.Facebook/Makefile
366
src/Extensions/Exporters/FSpot.Exporters.Folder/Makefile
367
src/Extensions/Exporters/FSpot.Exporters.SmugMug/Makefile
368
src/Extensions/Exporters/FSpot.Exporters.Tabblo/Makefile
369
src/Extensions/Exporters/FSpot.Exporters.PicasaWeb/Makefile
370
src/Extensions/Exporters/FSpot.Exporters.Zip/Makefile
371
src/Extensions/Tools/Makefile
372
src/Extensions/Tools/FSpot.Tools.RawPlusJpeg/Makefile
373
src/Extensions/Tools/FSpot.Tools.ChangePhotoPath/Makefile
374
src/Extensions/Tools/FSpot.Tools.DevelopInUFraw/Makefile
375
src/Extensions/Tools/FSpot.Tools.LiveWebGallery/Makefile
376
src/Extensions/Tools/FSpot.Tools.MergeDb/Makefile
377
src/Extensions/Tools/FSpot.Tools.RetroactiveRoll/Makefile
378
src/Extensions/Tools/FSpot.Tools.ScreensaverConfig/Makefile
379
src/Extensions/Transitions/Makefile
380
src/Extensions/Transitions/FSpot.Transitions.Cover/Makefile
381
src/Extensions/Transitions/FSpot.Transitions.Dissolve/Makefile
382
src/Extensions/Transitions/FSpot.Transitions.Push/Makefile
383
384
docs/Makefile
385
icons/Makefile
386
tools/Makefile
387
po/Makefile.in
388
tests/Makefile
389
])
390
391
cat <<EOF
392
393
${PACKAGE}-${VERSION}
394
395
  Build Environment
396
    Install Prefix:    ${prefix}
397
    Datadir:           ${expanded_datadir}
398
    Libdir:            ${expanded_libdir}
399
400
    C Compiler:        ${CC}
401
    Mono C# Compiler:  ${MCS} ${GMCS_FLAGS}
402
    Mono Runtime:      ${MONO}
403
404
  Build/Development:
405
    Unit Tests:        ${do_tests}
406
    User Help:         ${enable_user_help} (requires gnome-doc-utils >= 0.17.3)
407
408
Run 'make' to build F-Spot.
409
410
EOF
411
412
if test -d ${expanded_libdir}/${PACKAGE}; then
413
	if test x$br = xyes; then echo; fi
414
	echo "  WARNING: An existing F-Spot install is in ${expanded_libdir}/${PACKAGE}"
415
	echo "           Remove the existing install before installing this build."
416
	echo "           Installing over an existing install will cause conflicts!"
417
	echo 
418
fi