1ACLOCAL_AMFLAGS = -I m4 2 3AM_DISTCHECK_CONFIGURE_FLAGS = \ 4 --enable-appdata-check \ 5 --enable-flac \ 6 --enable-id3v23 \ 7 --enable-ogg \ 8 --enable-opus \ 9 --enable-man \ 10 --enable-mp3 \ 11 --enable-mp4 \ 12 --enable-nautilus-actions \ 13 --enable-speex \ 14 --enable-tests \ 15 --enable-wavpack 16 17SUBDIRS = help po 18 19bin_PROGRAMS = easytag 20 21easytag_CPPFLAGS = \ 22 -I$(top_srcdir) \ 23 -I$(top_srcdir)/src \ 24 -I$(top_srcdir)/src/tags \ 25 -I$(top_builddir) \ 26 -I$(top_builddir)/src \ 27 -DLOCALEDIR=\"$(localedir)\" \ 28 $(GLIB_DEPRECATION_FLAGS) \ 29 $(GTK_DEPRECATION_FLAGS) 30 31easytag_CFLAGS = \ 32 $(WARN_CFLAGS) \ 33 $(EASYTAG_CFLAGS) 34 35easytag_CXXFLAGS = \ 36 $(WARN_CXXFLAGS) \ 37 $(EASYTAG_CFLAGS) 38 39easytag_SOURCES = \ 40 src/about.c \ 41 src/application.c \ 42 src/application_window.c \ 43 src/browser.c \ 44 src/browser.h \ 45 src/cddb_dialog.c \ 46 src/charset.c \ 47 src/crc32.c \ 48 src/dlm.c \ 49 src/easytag.c \ 50 src/enums.c \ 51 src/et_core.c \ 52 src/file.c \ 53 src/file_area.c \ 54 src/file_description.c \ 55 src/file_info.c \ 56 src/file_list.c \ 57 src/file_name.c \ 58 src/file_tag.c \ 59 src/load_files_dialog.c \ 60 src/log.c \ 61 src/main.c \ 62 src/misc.c \ 63 src/picture.c \ 64 src/playlist_dialog.c \ 65 src/preferences_dialog.c \ 66 src/progress_bar.c \ 67 src/scan.c \ 68 src/scan_dialog.c \ 69 src/search_dialog.c \ 70 src/setting.c \ 71 src/status_bar.c \ 72 src/tag_area.c \ 73 src/tags/id3lib/c_wrapper.cpp \ 74 src/tags/libapetag/apetaglib.c \ 75 src/tags/libapetag/is_tag.c \ 76 src/tags/libapetag/info_mac.c \ 77 src/tags/libapetag/info_mpc.c \ 78 src/tags/ape_tag.c \ 79 src/tags/flac_header.c \ 80 src/tags/flac_private.c \ 81 src/tags/flac_tag.c \ 82 src/tags/gio_wrapper.cc \ 83 src/tags/id3_tag.c \ 84 src/tags/id3v24_tag.c \ 85 src/tags/monkeyaudio_header.c \ 86 src/tags/mpeg_header.c \ 87 src/tags/mp4_tag.cc \ 88 src/tags/musepack_header.c \ 89 src/tags/ogg_header.c \ 90 src/tags/ogg_tag.c \ 91 src/tags/opus_header.c \ 92 src/tags/opus_tag.c \ 93 src/tags/vcedit.c \ 94 src/tags/wavpack_header.c \ 95 src/tags/wavpack_private.c \ 96 src/tags/wavpack_tag.c \ 97 src/win32/win32dep.c 98 99nodist_easytag_SOURCES = \ 100 src/resource.c 101 102easytag_headers = \ 103 src/about.h \ 104 src/application.h \ 105 src/application_window.h \ 106 src/cddb_dialog.h \ 107 src/charset.h \ 108 src/crc32.h \ 109 src/core_types.h \ 110 src/dlm.h \ 111 src/easytag.h \ 112 src/et_core.h \ 113 src/file.h \ 114 src/file_area.h \ 115 src/file_description.h \ 116 src/file_info.h \ 117 src/file_list.h \ 118 src/file_name.h \ 119 src/file_tag.h \ 120 src/genres.h \ 121 src/load_files_dialog.h \ 122 src/log.h \ 123 src/misc.h \ 124 src/picture.h \ 125 src/playlist_dialog.h \ 126 src/preferences_dialog.h \ 127 src/progress_bar.h \ 128 src/scan.h \ 129 src/scan_dialog.h \ 130 src/search_dialog.h \ 131 src/setting.h \ 132 src/status_bar.h \ 133 src/tag_area.h \ 134 src/tags/id3lib/id3_bugfix.h \ 135 src/tags/libapetag/apetaglib.h \ 136 src/tags/libapetag/is_tag.h \ 137 src/tags/libapetag/info_mac.h \ 138 src/tags/libapetag/info_mpc.h \ 139 src/tags/ape_tag.h \ 140 src/tags/flac_header.h \ 141 src/tags/flac_private.h \ 142 src/tags/flac_tag.h \ 143 src/tags/gio_wrapper.h \ 144 src/tags/id3_tag.h \ 145 src/tags/monkeyaudio_header.h \ 146 src/tags/mpeg_header.h \ 147 src/tags/mp4_header.h \ 148 src/tags/mp4_tag.h \ 149 src/tags/musepack_header.h \ 150 src/tags/ogg_header.h \ 151 src/tags/ogg_tag.h \ 152 src/tags/opus_header.h \ 153 src/tags/opus_tag.h \ 154 src/tags/vcedit.h \ 155 src/tags/wavpack_header.h \ 156 src/tags/wavpack_private.h \ 157 src/tags/wavpack_tag.h \ 158 src/win32/win32dep.h 159 160nodist_easytag_headers = \ 161 src/resource.h 162 163easytag_LDADD = \ 164 $(EASYTAG_LIBS) \ 165 $(ID3LIB_LIBS) \ 166 $(easytag_rc) 167 168easytag_LDFLAGS = \ 169 $(WARN_LDFLAGS) 170 171noinst_resource_files = \ 172 $(shell $(GLIB_COMPILE_RESOURCES) --generate-dependencies --sourcedir=$(srcdir)/data $(srcdir)/data/org.gnome.EasyTAG.gresource.xml) 173 174src/resource.c src/resource.h: data/org.gnome.EasyTAG.gresource.xml Makefile $(noinst_resource_files) 175 $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir)/data --generate $< 176 177if WINDOWS_HOST 178ICONDIR = $(srcdir)/data/icons/win32 179MANIFESTDIR = $(srcdir)/src/win32 180 181easytag_rc.$(OBJEXT): src/win32/easytag.rc src/win32/easytag.manifest data/icons/win32/easytag.ico 182 $(AM_V_GEN)$(WINDRES) -DICONDIR='\"$(ICONDIR)\"' \ 183 -DMANIFESTDIR='\"$(MANIFESTDIR)\"' -i $< -o $@ 184 185easytag_rc = easytag_rc.$(OBJEXT) 186 187easytag_LDFLAGS += \ 188 -Wl,--subsystem,windows 189 190easytag-$(PACKAGE_VERSION)-setup.exe: easytag-win32-installer.nsi easytag.exe Makefile 191 $(AM_V_GEN) DESTDIR=`mktemp -d` && \ 192 make -C $(top_builddir) install DESTDIR=$$DESTDIR >/dev/null && \ 193 makensis -NOCD -DDESTDIR=$$DESTDIR $< >/dev/null && \ 194 rm -rf $$DESTDIR 195endif 196 197BUILT_SOURCES = \ 198 $(nodist_easytag_SOURCES) \ 199 src/enums.h 200 201enum_data = \ 202 src/enums.c \ 203 src/enums.h 204 205easytag_enum_headers = \ 206 $(srcdir)/src/setting.h 207 208src/enums.c: $(easytag_enum_headers) src/enums.h Makefile 209 $(AM_V_GEN)$(GLIB_MKENUMS) \ 210 --fhead "#include \"enums.h\"\n\n" \ 211 --fprod "/* enumerations from \"@filename@\" */\n" \ 212 --fprod "#include \"@filename@\"\n" \ 213 --vhead "GType\n@enum_name@_get_type (void)\n{\n" \ 214 --vhead " static GType type = 0;\n\n" \ 215 --vhead " if (!type)\n {\n" \ 216 --vhead " static const G@Type@Value _@enum_name@_values[] = {" \ 217 --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ 218 --vtail " { 0, NULL, NULL }\n };\n\n" \ 219 --vtail " type = g_@type@_register_static (\"@EnumName@\", _@enum_name@_values);\n }\n\n" \ 220 --vtail " return type;\n}\n\n" \ 221 $(easytag_enum_headers) > $@ 222 223src/enums.h: $(easytag_enum_headers) Makefile 224 $(AM_V_GEN)$(GLIB_MKENUMS) \ 225 --fhead "#ifndef ET_ENUMS_H_\n" \ 226 --fhead "#define ET_ENUMS_H_\n\n" \ 227 --fhead "#include <glib-object.h>\n\n" \ 228 --fhead "G_BEGIN_DECLS\n\n" \ 229 --fprod "/* enumerations from @filename@ */\n" \ 230 --vhead "GType @enum_name@_get_type (void);\n" \ 231 --vhead "#define ET_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \ 232 --ftail "G_END_DECLS\n\n" \ 233 --ftail "#endif /* ET_ENUMS_H_ */" \ 234 $(easytag_enum_headers) > $@ 235 236# NSIS installer script. 237# TODO: Run script from dist dir. 238easytag-win32-installer.nsi: easytag-win32-installer.nsi.in Makefile 239 $(AM_V_GEN)$(SED) -e "s|\@PACKAGE_NAME\@|$(PACKAGE_NAME)|" \ 240 -e "s|\@PACKAGE_TARNAME\@|$(PACKAGE_TARNAME)|" \ 241 -e "s|\@PACKAGE_URL\@|$(PACKAGE_URL)|" \ 242 -e "s|\@PACKAGE_VERSION\@|$(PACKAGE_VERSION)|" \ 243 -e "s|\@PREFIX\@|$(prefix)|" $< > $@ 244 245if ENABLE_NAUTILUS_ACTIONS 246nautilus_extensiondir = $(NAUTILUS_EXTENSION_DIR) 247 248nautilus_extension_LTLIBRARIES = \ 249 libnautilus-easytag.la 250 251libnautilus_easytag_la_SOURCES = \ 252 nautilus-extension/nautilus-easytag.c 253 254libnautilus_easytag_la_CPPFLAGS = \ 255 -I$(top_srcdir) \ 256 -I$(top_builddir) \ 257 -DLOCALEDIR=\"$(localedir)\" \ 258 $(NAUTILUS_CFLAGS) \ 259 $(GLIB_DEPRECATION_FLAGS) \ 260 $(GTK_DEPRECATION_FLAGS) 261 262libnautilus_easytag_la_CFLAGS = \ 263 $(WARN_CFLAGS) 264 265libnautilus_easytag_la_LDFLAGS = \ 266 -module -avoid-version -no-undefined \ 267 $(WARN_LDFLAGS) 268 269libnautilus_easytag_la_LIBADD = \ 270 $(NAUTILUS_LIBS) 271 272nautilus_appdata_in_file = data/easytag-nautilus.metainfo.xml.in 273endif 274 275# Create a directory stamp in the build dir. Used to workaround the case where 276# a pattern rule is used for a target with a path that does not ordinarily 277# exist in the build dir. 278%/.dstamp: 279 $(AM_V_at)$(MKDIR_P) $(@D) 280 $(AM_V_at)touch $@ 281 282@APPDATA_XML_RULES@ 283@INTLTOOL_XML_RULE@ 284appdata_in_files = data/easytag.appdata.xml.in $(nautilus_appdata_in_file) 285appdata_XML = $(appdata_in_files:.xml.in=.xml) 286 287@INTLTOOL_DESKTOP_RULE@ 288desktopdir = $(datadir)/applications 289desktop_in_files = data/easytag.desktop.in 290$(desktop_in_files:.desktop.in=.desktop): data/.dstamp 291desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) 292 293gsettings_ENUM_FILES = src/setting.h 294gsettings_ENUM_NAMESPACE = org.gnome.EasyTAG 295gsettings_SCHEMAS = data/org.gnome.EasyTAG.gschema.xml 296data/org.gnome.EasyTAG.gschema.valid: data/.dstamp 297@GSETTINGS_RULES@ 298 299if ENABLE_MAN 300doc/easytag.1: doc/easytag.xml Makefile 301 $(AM_V_GEN)$(XSLTPROC) --nonet --param man.charmap.use.subset 0 \ 302 --path $(builddir)/doc --output $(builddir)/doc/ \ 303 http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< 304 305nodist_man_MANS = doc/easytag.1 306endif 307 308images = \ 309 data/images/all-lowercase.png \ 310 data/images/all-uppercase.png \ 311 data/images/artist.png \ 312 data/images/artist-album.png \ 313 data/images/first-letter-uppercase.png \ 314 data/images/first-letter-uppercase-word.png \ 315 data/images/freedb.png \ 316 data/images/gnudb.png \ 317 data/images/invert-selection.png \ 318 data/images/mask.png \ 319 data/images/musicbrainz.png \ 320 data/images/red-lines.png \ 321 data/images/sequence-track.png \ 322 data/images/unselect-all.png 323 324iconthemedir = $(datadir)/icons/hicolor 325 326appicon16dir = $(iconthemedir)/16x16/apps 327appicon22dir = $(iconthemedir)/22x22/apps 328appicon24dir = $(iconthemedir)/24x24/apps 329appicon32dir = $(iconthemedir)/32x32/apps 330appicon48dir = $(iconthemedir)/48x48/apps 331appicon64dir = $(iconthemedir)/64x64/apps 332appicon128dir = $(iconthemedir)/128x128/apps 333appicon256dir = $(iconthemedir)/256x256/apps 334appiconscalabledir = $(iconthemedir)/scalable/apps 335appiconsymbolicdir = $(iconthemedir)/symbolic/apps 336 337dist_appicon16_DATA = \ 338 data/icons/16x16/easytag.png 339dist_appicon22_DATA = \ 340 data/icons/22x22/easytag.png 341dist_appicon24_DATA = \ 342 data/icons/24x24/easytag.png 343dist_appicon32_DATA = \ 344 data/icons/32x32/easytag.png 345dist_appicon48_DATA = \ 346 data/icons/48x48/easytag.png 347dist_appicon64_DATA = \ 348 data/icons/64x64/easytag.png 349dist_appicon128_DATA = \ 350 data/icons/128x128/easytag.png 351dist_appicon256_DATA = \ 352 data/icons/256x256/easytag.png 353dist_appiconscalable_DATA = \ 354 data/icons/scalable/easytag.svg 355dist_appiconsymbolic_DATA = \ 356 data/icons/symbolic/easytag-symbolic.svg 357 358UPDATE_ICON_CACHE = gtk-update-icon-cache --ignore-theme-index --force 359 360install-data-hook: install-update-icon-cache 361uninstall-hook: uninstall-update-icon-cache 362 363install-update-icon-cache: 364 $(AM_V_at)$(POST_INSTALL) 365 test -n "$(DESTDIR)" || $(UPDATE_ICON_CACHE) "$(iconthemedir)" 366 367uninstall-update-icon-cache: 368 $(AM_V_at)$(POST_UNINSTALL) 369 test -n "$(DESTDIR)" || $(UPDATE_ICON_CACHE) "$(iconthemedir)" 370 371dist_noinst_DATA = \ 372 $(appdata_in_files) \ 373 $(desktop_in_files) \ 374 $(gsettings_SCHEMAS) \ 375 $(easytag_headers) \ 376 data/org.gnome.EasyTAG.gresource.xml \ 377 $(noinst_resource_files) \ 378 src/tags/id3lib/patch_id3lib_3.8.3_UTF16_writing_bug.diff \ 379 src/tags/libapetag/README.apetag \ 380 src/tags/libapetag/id3v2_read.c \ 381 src/tags/libapetag/id3v2_read.h \ 382 src/tags/mp4_header.cc \ 383 src/win32/easytag.manifest \ 384 src/win32/resource.h \ 385 data/icons/win32/easytag.ico \ 386 data/nsis/easytag-header.bmp \ 387 data/nsis/easytag-sidebar.bmp \ 388 $(images) \ 389 doc/easytag.xml \ 390 COPYING.GPL3 \ 391 easytag-win32-installer.nsi.in \ 392 HACKING 393 394dist_noinst_SCRIPTS = \ 395 autogen.sh 396 397if EASYTAG_ENABLE_TESTS 398tests/test-desktop-file-validate.sh: Makefile tests/.dstamp 399 $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \ 400 echo "$(DESKTOP_FILE_VALIDATE) $(top_builddir)/$(desktop_DATA) || exit 1" >> $@; \ 401 chmod +x $@ 402 403# Not automake built-in TESTS_ENVIRONMENT! 404TEST_ENVIRONMENT = \ 405 MALLOC_CHECK_=2 \ 406 MALLOC_PERTURB_=$$(($${RANDOM:-256} % 256)) \ 407 G_SLICE=debug-blocks 408 409# test: run all tests. 410test: $(check_PROGRAMS) 411 $(AM_V_at)$(TEST_ENVIRONMENT) $(GTESTER) --verbose $(check_PROGRAMS) 412 413# test-report: run tests and generate report. 414# perf-report: run tests with -m perf and generate report. 415# full-report: like test-report: with -m perf and -m slow. 416test-report perf-report full-report: $(check_PROGRAMS) 417 $(AM_V_at)test -z "$(check_PROGRAMS)" || { \ 418 case $@ in \ 419 test-report) test_options="-k";; \ 420 perf-report) test_options="-k -m=perf";; \ 421 full-report) test_options="-k -m=perf -m=slow";; \ 422 esac ; \ 423 $(TEST_ENVIRONMENT) $(GTESTER) --verbose $$test_options -o test-log.xml $(check_PROGRAMS) ; \ 424 if test -d "$(top_srcdir)/.git" ; then \ 425 REVISION=`git describe` ; \ 426 else \ 427 REVISION=$(PACKAGE_VERSION) ; \ 428 fi ; \ 429 echo '<?xml version="1.0"?>' > $@.xml ; \ 430 echo '<report-collection>' >> $@.xml ; \ 431 echo '<info>' >> $@.xml ; \ 432 echo ' <package>$(PACKAGE_NAME)</package>' >> $@.xml ; \ 433 echo ' <version>$(PACKAGE_VERSION)</version>' >> $@.xml ; \ 434 echo " <revision>$$REVISION</revision>" >> $@.xml ; \ 435 echo '</info>' >> $@.xml ; \ 436 sed '1,1s/^<?xml\b[^>?]*?>//' < test-log.xml >> $@.xml ; \ 437 rm test-log.xml ; \ 438 echo >> $@.xml ; \ 439 echo '</report-collection>' >> $@.xml ; \ 440 $(GTESTER_REPORT) --version 2>/dev/null 1>&2 ; test "$$?" != 0 || $(GTESTER_REPORT) $@.xml >$@.html ; \ 441 } 442 443check_PROGRAMS = \ 444 tests/test-dlm \ 445 tests/test-genres \ 446 tests/test-file_description \ 447 tests/test-file_info \ 448 tests/test-file_tag \ 449 tests/test-misc \ 450 tests/test-picture \ 451 tests/test-scan 452 453common_test_cppflags = \ 454 -I$(top_srcdir)/src \ 455 -I$(top_builddir) \ 456 $(GLIB_DEPRECATION_FLAGS) \ 457 $(GTK_DEPRECATION_FLAGS) 458 459common_test_cflags = \ 460 $(EASYTAG_CFLAGS) \ 461 $(WARN_CFLAGS) 462 463tests_test_dlm_CPPFLAGS = \ 464 $(common_test_cppflags) 465 466tests_test_dlm_CFLAGS = \ 467 $(common_test_cflags) 468 469tests_test_dlm_SOURCES = \ 470 tests/test-dlm.c \ 471 src/dlm.c 472 473tests_test_dlm_LDADD = \ 474 $(EASYTAG_LIBS) 475 476tests_test_file_description_CPPFLAGS = \ 477 $(common_test_cppflags) 478 479tests_test_file_description_CFLAGS = \ 480 $(common_test_cflags) 481 482tests_test_file_description_SOURCES = \ 483 tests/test-file_description.c \ 484 src/file_description.c 485 486tests_test_file_description_LDADD = \ 487 $(EASYTAG_LIBS) 488 489tests_test_file_info_CPPFLAGS = \ 490 $(common_test_cppflags) 491 492tests_test_file_info_CFLAGS = \ 493 $(common_test_cflags) 494 495tests_test_file_info_SOURCES = \ 496 tests/test-file_info.c \ 497 src/file_info.c 498 499tests_test_file_info_LDADD = \ 500 $(EASYTAG_LIBS) 501 502tests_test_file_tag_CPPFLAGS = \ 503 $(common_test_cppflags) \ 504 -I$(top_srcdir)/src/tags 505 506tests_test_file_tag_CFLAGS = \ 507 $(common_test_cflags) 508 509tests_test_file_tag_SOURCES = \ 510 tests/test-file_tag.c \ 511 src/file_tag.c \ 512 src/misc.c \ 513 src/picture.c 514 515tests_test_file_tag_LDADD = \ 516 $(EASYTAG_LIBS) 517 518tests_test_genres_CPPFLAGS = \ 519 $(common_test_cppflags) 520 521tests_test_genres_CFLAGS = \ 522 $(common_test_cflags) 523 524tests_test_genres_SOURCES = \ 525 tests/test-genres.c 526 527tests_test_genres_LDADD = \ 528 $(EASYTAG_LIBS) 529 530tests_test_misc_CPPFLAGS = \ 531 $(common_test_cppflags) \ 532 -I$(top_srcdir)/src/tags 533 534tests_test_misc_CFLAGS = \ 535 $(common_test_cflags) 536 537tests_test_misc_SOURCES = \ 538 tests/test-misc.c \ 539 src/misc.c 540 541tests_test_misc_LDADD = \ 542 $(EASYTAG_LIBS) 543 544tests_test_picture_CPPFLAGS = \ 545 $(common_test_cppflags) \ 546 -I$(top_srcdir)/src/tags 547 548tests_test_picture_CFLAGS = \ 549 $(common_test_cflags) 550 551tests_test_picture_SOURCES = \ 552 tests/test-picture.c \ 553 src/misc.c \ 554 src/picture.c 555 556tests_test_picture_LDADD = \ 557 $(EASYTAG_LIBS) 558 559tests_test_scan_CPPFLAGS = \ 560 $(common_test_cppflags) 561 562tests_test_scan_CFLAGS = \ 563 $(common_test_cflags) 564 565tests_test_scan_SOURCES = \ 566 tests/test-scan.c \ 567 src/scan.c 568 569tests_test_scan_LDADD = \ 570 $(EASYTAG_LIBS) 571 572check_SCRIPTS = \ 573 tests/test-desktop-file-validate.sh 574 575TESTS = \ 576 $(check_PROGRAMS) \ 577 $(check_SCRIPTS) 578endif 579 580CLEANFILES = \ 581 $(appdata_XML) \ 582 $(check_SCRIPTS) \ 583 $(desktop_DATA) \ 584 $(easytag_rc) \ 585 $(enum_data) \ 586 $(nodist_man_MANS) \ 587 *.log \ 588 easytag-$(PACKAGE_VERSION)-setup.exe \ 589 easytag-win32-installer.nsi \ 590 src/resource.c \ 591 src/resource.h 592 593DISTCLEANFILES = \ 594 po/.intltool-merge-cache 595 596check-local: test 597clean-local: clean-local-dstamp 598clean-local-dstamp: 599 -rm -f data/.dstamp 600 -rm -f tests/.dstamp 601 602@GENERATE_CHANGELOG_RULES@ 603dist-hook: dist-ChangeLog 604 605.PHONY: clean-local-dstamp 606.PHONY: test test-report perf-report full-report 607