1SUBDIRS=po 2 3EXPORT_MODULES= \ 4 cupshelpers/__init__.py \ 5 cupshelpers/cupshelpers.py \ 6 cupshelpers/installdriver.py \ 7 cupshelpers/ppds.py \ 8 cupshelpers/openprinting.py \ 9 cupshelpers/xmldriverprefs.py 10 11EXPORT_MODULES_GEN= \ 12 cupshelpers/config.py 13 14### Automake hooks for Distutils. 15# The distutils module doesn't understand srcdir != builddir, 16# so we copy in, along with the cupshelpers modules, into 17# the builddir for 'all', 'install-exec', and 'clean' hooks. 18.stamp-distutils-in-builddir: setup.py $(EXPORT_MODULES) 19 if [ "$(top_srcdir)" != "$(top_builddir)" ]; then \ 20 cp $(top_srcdir)/setup.py .; \ 21 $(mkdir_p) cupshelpers; \ 22 for file in $(EXPORT_MODULES); do \ 23 cp $(top_srcdir)/$$file $$file; \ 24 done; \ 25 fi 26 touch .stamp-distutils-in-builddir 27 28dist-hook: mk-ChangeLog 29.PHONE: mk-ChangeLog 30mk-ChangeLog: 31 if test -d .git; then \ 32 $(top_srcdir)/gitlog-to-changelog \ 33 --since=2009-05-01 -- --no-merges \ 34 > $(distdir)/cl ; \ 35 mv -f $(distdir)/cl $(distdir)/ChangeLog ; \ 36 fi 37 38config.py: config.py.in Makefile 39 sed \ 40 -e "s|\@prefix\@|$(prefix)|" \ 41 -e "s|\@datadir\@|$(datadir)|" \ 42 -e "s|\@localedir\@|$(localedir)|" \ 43 -e "s|\@VERSION\@|$(VERSION)|" \ 44 -e "s|\@PACKAGE\@|$(PACKAGE)|" \ 45 $< > $@ 46 47cupshelpers/config.py: cupshelpers/config.py.in Makefile 48 $(mkdir_p) cupshelpers 49 sed \ 50 -e "s|\@prefix\@|$(prefix)|" \ 51 -e "s|\@sysconfdir\@|$(sysconfdir)|" \ 52 -e "s|\@cupsserverbindir\@|$(cupsserverbindir)|" \ 53 $< > $@ 54 55dbus/org.fedoraproject.Config.Printing.service: dbus/org.fedoraproject.Config.Printing.service.in $(top_builddir)/config.status Makefile 56 sed \ 57 -e "s|\@bindir\@|$(bindir)|" \ 58 $< >$@ 59 60# Use distutils to build the module. 61all-local: .stamp-distutils-in-builddir config.py cupshelpers/config.py 62 $(PYTHON) setup.py build 63 64# Use distutils to install the module. 65install-exec-local: .stamp-distutils-in-builddir 66 $(PYTHON) setup.py install -c -O1 --prefix=/usr/local --root=/opengrok/src/dports/print/system-config-printer/stage 67 68# Uninstall the module, crossing our fingers that we know enough 69# about how distutils works to do this. Unfortunately, distutils 70# doesn't provide a way to do this itself. 71uninstall-local: 72 rm -f $(DESTDIR)/$(pythondir)/cupshelpers*.egg-info 73 rm -rf $(DESTDIR)/$(pythondir)/cupshelpers/__pycache__ 74 for file in $(EXPORT_MODULES) $(EXPORT_MODULES_GEN); do \ 75 rm -f $(DESTDIR)/$(pythondir)/$$file*; \ 76 done 77 78# Tell distutils to clean up. 79clean-local: 80 -$(PYTHON) setup.py clean --all 81 if [ "$(top_srcdir)" != "$(top_builddir)" ]; then \ 82 rm -f setup.py; \ 83 for file in $(EXPORT_MODULES) \ 84 $(EXPORT_MODULES_GEN); do \ 85 rm -f $$file*; \ 86 done; \ 87 fi 88 rm -f .stamp-distutils-in-builddir 89 rm -f .stamp-man-pages-built 90 91nobase_pkgdata_SCRIPTS= \ 92 check-device-ids.py \ 93 pysmb.py \ 94 scp-dbus-service.py \ 95 system-config-printer.py \ 96 install-printerdriver.py \ 97 troubleshoot/__init__.py \ 98 applet.py 99 100nobase_pkgdata_DATA= \ 101 asyncconn.py \ 102 asyncipp.py \ 103 asyncpk1.py \ 104 authconn.py \ 105 config.py \ 106 cupspk.py \ 107 debug.py \ 108 dnssdresolve.py \ 109 errordialogs.py \ 110 HIG.py \ 111 firewallsettings.py \ 112 gui.py \ 113 gtkinklevel.py \ 114 installpackage.py \ 115 jobviewer.py \ 116 killtimer.py \ 117 monitor.py \ 118 newprinter.py \ 119 OpenPrintingRequest.py \ 120 options.py \ 121 optionwidgets.py \ 122 PhysicalDevice.py \ 123 ppdcache.py \ 124 ppdippstr.py \ 125 ppdsloader.py \ 126 printerproperties.py \ 127 probe_printer.py \ 128 SearchCriterion.py \ 129 serversettings.py \ 130 smburi.py \ 131 statereason.py \ 132 timedops.py \ 133 ToolbarSearchEntry.py \ 134 userdefault.py \ 135 ui/AboutDialog.ui \ 136 ui/ConnectDialog.ui \ 137 ui/ConnectingDialog.ui \ 138 ui/InstallDialog.ui \ 139 ui/JobsWindow.ui \ 140 ui/NewPrinterName.ui \ 141 ui/NewPrinterWindow.ui \ 142 ui/PrinterPropertiesDialog.ui \ 143 ui/PrintersWindow.ui \ 144 ui/ServerSettingsDialog.ui \ 145 ui/SMBBrowseDialog.ui \ 146 ui/statusicon_popupmenu.ui \ 147 ui/WaitWindow.ui \ 148 icons/i-network-printer.png \ 149 troubleshoot/base.py \ 150 troubleshoot/CheckLocalServerPublishing.py \ 151 troubleshoot/CheckNetworkServerSanity.py \ 152 troubleshoot/CheckPPDSanity.py \ 153 troubleshoot/CheckPrinterSanity.py \ 154 troubleshoot/CheckSELinux.py \ 155 troubleshoot/CheckUSBPermissions.py \ 156 troubleshoot/ChooseNetworkPrinter.py \ 157 troubleshoot/ChoosePrinter.py \ 158 troubleshoot/DeviceListed.py \ 159 troubleshoot/ErrorLogCheckpoint.py \ 160 troubleshoot/ErrorLogFetch.py \ 161 troubleshoot/ErrorLogParse.py \ 162 troubleshoot/Locale.py \ 163 troubleshoot/LocalOrRemote.py \ 164 troubleshoot/NetworkCUPSPrinterShared.py \ 165 troubleshoot/PrinterStateReasons.py \ 166 troubleshoot/PrintTestPage.py \ 167 troubleshoot/QueueNotEnabled.py \ 168 troubleshoot/QueueRejectingJobs.py \ 169 troubleshoot/RemoteAddress.py \ 170 troubleshoot/SchedulerNotRunning.py \ 171 troubleshoot/ServerFirewalled.py \ 172 troubleshoot/Shrug.py \ 173 troubleshoot/VerifyPackages.py \ 174 troubleshoot/Welcome.py \ 175 xml/preferreddrivers.rng \ 176 xml/validate.py 177 178cupshelpersdir=$(sysconfdir)/cupshelpers 179cupshelpers_DATA=\ 180 xml/preferreddrivers.xml 181 182nodist_bin_SCRIPTS= \ 183 system-config-printer \ 184 install-printerdriver \ 185 system-config-printer-applet \ 186 dbus/scp-dbus-service 187 188if UDEV_RULES 189udevrules_DATA=udev/70-printers.rules 190udev_udev_configure_printer_SOURCES=\ 191 udev/udev-configure-printer.c 192udev_udev_configure_printer_LDADD= -lcups -ludev $(libusb_LIBS) $(GLIB_LIBS) 193udev_udev_configure_printer_CFLAGS= $(AM_CFLAGS) $(libusb_CFLAGS) $(GLIB_CFLAGS) 194udev_PROGRAMS=\ 195 udev/udev-configure-printer 196udev_SCRIPTS=\ 197 udev/udev-add-printer 198 199if HAVE_SYSTEMD 200systemdsystemunit_DATA = \ 201 udev/configure-printer@.service 202systemd_CLEANFILES = \ 203 $(systemdsystemunit_DATA) 204else 205systemd_CLEANFILES= 206endif 207 208else 209systemd_CLEANFILES= 210endif 211 212man_MANS= \ 213 man/system-config-printer.1 \ 214 man/system-config-printer-applet.1 215 216dbus_DATA = \ 217 dbus/com.redhat.NewPrinterNotification.conf \ 218 dbus/com.redhat.PrinterDriversInstaller.conf 219dbusdir = $(sysconfdir)/dbus-1/system.d/ 220 221dbusinterfaces_DATA = \ 222 dbus/org.fedoraproject.Config.Printing.xml 223dbusinterfacesdir = $(datadir)/dbus-1/interfaces/ 224 225nodist_dbusservices_DATA = \ 226 dbus/org.fedoraproject.Config.Printing.service 227dbusservicesdir = $(datadir)/dbus-1/services/ 228 229@INTLTOOL_DESKTOP_RULE@ 230 231desktop_DATA =\ 232 system-config-printer.desktop \ 233 print-applet.desktop 234desktopdir = $(datadir)/applications/ 235autostartdir = $(sysconfdir)/xdg/autostart/ 236 237DESKTOP_VENDOR=@DESKTOPVENDOR@ 238DESKTOP_PREFIX=@DESKTOPPREFIX@ 239 240install-desktopDATA: $(desktop_DATA) 241 mkdir -p $(DESTDIR)$(desktopdir) 242 mkdir -p $(DESTDIR)$(desktopdir) 243 desktop-file-install $(DESKTOP_VENDOR) \ 244 --dir $(DESTDIR)$(desktopdir) \ 245 --add-category System \ 246 --add-category Settings \ 247 --add-category HardwareSettings \ 248 --add-category Printing \ 249 --add-category GTK \ 250 system-config-printer.desktop 251 desktop-file-install $(DESKTOP_VENDOR) \ 252 --dir $(DESTDIR)$(autostartdir) \ 253 --add-category System \ 254 --add-category Monitor \ 255 --add-category GTK \ 256 print-applet.desktop 257 258uninstall-desktopDATA: 259 rm -f $(DESTDIR)$(desktopdir)/$(DESKTOP_PREFIX)system-config-printer.desktop 260 rm -f $(DESTDIR)$(autostartdir)/$(DESKTOP_PREFIX)print-applet.desktop 261 262desktop_in_files = $(desktop_DATA:.desktop=.desktop.in) 263 264@INTLTOOL_XML_RULE@ 265 266appdatadir = $(datadir)/metainfo 267appdata_in_files = system-config-printer.appdata.xml.in 268appdata_DATA = $(appdata_in_files:.xml.in=.xml) 269 270EXTRA_DIST=\ 271 $(nobase_pkgdata_SCRIPTS) \ 272 $(nobase_pkgdata_DATA) \ 273 $(nobase_sbin_SCRIPTS) \ 274 $(bin_SCRIPTS) \ 275 setup.py \ 276 $(EXPORT_MODULES) \ 277 man/system-config-printer.xml \ 278 $(dbus_DATA) \ 279 $(dbusinterfaces_DATA) \ 280 $(dbusservices_DATA) \ 281 bootstrap \ 282 mkinstalldirs \ 283 ChangeLog-OLD \ 284 $(desktop_in_files) \ 285 intltool-extract.in \ 286 intltool-merge.in \ 287 intltool-update.in \ 288 config.py.in \ 289 cupshelpers/config.py.in \ 290 profile-ppds.py \ 291 udev/udev-add-printer \ 292 udev/70-printers.rules \ 293 udev/configure-printer@.service.in \ 294 dbus/org.fedoraproject.Config.Printing.service.in \ 295 xml/preferreddrivers.xml \ 296 test_PhysicalDevice.py \ 297 $(appdata_in_files) 298 299# The man pages are generated from DocBook XML. 300.stamp-man-pages-built: $(top_srcdir)/man/system-config-printer.xml 301 xmlto man -o man $< 302 touch .stamp-man-pages-built 303 304$(man_MANS): .stamp-man-pages-built 305 306html: $(EXPORT_MODULES) $(EXPORT_MODULES_GEN) 307 rm -rf html 308 epydoc -o html --html $(EXPORT_MODULES) 309 310distcheck-hook: update-po missing-imports 311 312# Generate Zanata locales list from ALL_LINGUAS 313zanata.xml: zanata.xml.in 314 LOCALES=$$(echo $(ALL_LINGUAS) | sed -e 's, ,\n,g' | \ 315 (NL="\\\\\n"; printf "/\@LOCALES\@/i"; while read ll; do \ 316 nomap="$${ll##*_*}"; \ 317 if [ -z "$$nomap" ]; then \ 318 printf "$$NL <locale map-from=\"$$ll\">$${ll%_*}-$${ll#*_}</locale>";\ 319 else \ 320 printf "$$NL <locale>$$ll</locale>"; \ 321 fi; \ 322 done; \ 323 printf "\n") \ 324 ); \ 325 sed -e 's,\@PACKAGE\@,$(PACKAGE),g' \ 326 -e "$$LOCALES" -e '/\@LOCALES\@/d' $< > $@ 327 328update-po: missing-languages 329 $(MAKE) -C po update-po 330 331pull-translations: zanata.xml 332 zanata-cli -B pull --src-dir=$(top_srcdir)/po --trans-dir=$(top_srcdir)/po 333 334push-translations: zanata.xml 335 zanata-cli -B push --src-dir=$(top_srcdir)/po --trans-dir=$(top_srcdir)/po 336 337missing-languages: 338 bash -c '\ 339 eval $$(grep ALL_LINGUAS configure.ac); \ 340 diff -u <(echo $$ALL_LINGUAS | xargs -rn1 echo) \ 341 <(cd po; ls -1 *.po | sed -e "s,\.po$$,,")' 342 343missing-imports: 344 s=0; \ 345 for a in $(top_srcdir)/*.py; do \ 346 modules=$$(sed -ne 's,^.*except \([a-z]\+\)\..*$$,\1,p' \ 347 "$$a" | sort -u); \ 348 for module in $$modules; do \ 349 if ! grep -q "import \(.*, *\)\?$$module" "$$a"; then \ 350 echo "$$a should import $$module"; \ 351 s=1; \ 352 fi; \ 353 done; \ 354 done; \ 355 exit $$s 356 357run: config.py cupshelpers/config.py 358 SYSTEM_CONFIG_PRINTER_UI=$(top_srcdir)/ui \ 359 CUPSHELPERS_XMLDIR=$(top_srcdir)/xml \ 360 $(PYTHON) $(top_srcdir)/system-config-printer.py --debug 361 362run-applet: config.py cupshelpers/config.py 363 $(PYTHON) $(top_srcdir)/applet.py --debug 364 365run-dbus-service: config.py cupshelpers/config.py 366 SYSTEM_CONFIG_PRINTER_UI=$(top_srcdir)/ui \ 367 CUPSHELPERS_XMLDIR=$(top_srcdir)/xml \ 368 $(PYTHON) $(top_srcdir)/scp-dbus-service.py --debug 369 370test-xmldriverprefs: cupshelpers/xmldriverprefs.py xml/preferreddrivers.xml 371 $(PYTHON) -c 'from cupshelpers.xmldriverprefs import test; test()' \ 372 2>&1 | less 373 374help: 375 @echo "Usage: make <target>" 376 @echo "Available targets:" 377 @echo " help Show this help message" 378 @echo " update-po Update the translations" 379 @echo " missing-languages Show which po files are not shipped" 380 @echo " run Run system-config-printer with local UI files" 381 @echo " run-applet Run system-config-printer-applet" 382 @echo " run-dbus-service Run scp-dbus-service with local UI files" 383 @echo " test-xmldriverprefs Show preferred driver order for all models" 384 385test-xml-validity.sh: FORCE 386 echo "#!/bin/bash" > "$@" 387 echo "set -e" >> "$@" 388 echo "xmllint --relaxng \\" >> "$@" 389 echo " $(top_srcdir)/xml/preferreddrivers.rng \\" >> "$@" 390 echo " $(top_srcdir)/xml/preferreddrivers.xml >/dev/null" >> "$@" 391 echo "$(PYTHON) $(top_srcdir)/xml/validate.py \\" >> "$@" 392 echo " $(top_srcdir)/xml/preferreddrivers.xml" >> "$@" 393 chmod 755 "$@" 394 395py.test.sh: FORCE 396 echo "#!/bin/bash" > "$@" 397 echo "exec ${PYTEST-py.test}" >> "$@" 398 chmod 755 "$@" 399 400TESTS = test-xml-validity.sh py.test.sh 401 402CLEANFILES= \ 403 $(systemd_CLEANFILES) \ 404 $(appdata_DATA) 405 406DISTCLEANFILES=*.pyc *.pyo *~ *.bak \ 407 troubleshoot/*.pyc troubleshoot/*.pyo troubleshoot/*~ \ 408 intltool-extract intltool-merge intltool-update \ 409 *.desktop man/*.1 \ 410 test-ppd-module.sh test-xml-validity.sh py.test.sh pickled-ppds \ 411 config.py cupshelpers/config.py zanata.xml \ 412 dbus/org.fedoraproject.Config.Printing.service 413 414distclean-local: 415 rm -rf html 416 rm -rf cupshelpers/__pycache__ 417 418.PHONY: update-po missing-languages run help FORCE 419