Remove build.h and version.tex from versioning, they're autogenerated Make 'Makefile' the dummy makefile to instruct user to launch configure if no GNUmakefile is found Make GNUmakefile the generated makefile and exclude it from the versioning Update .gitignore accordingly
330 lines
13 KiB
Plaintext
330 lines
13 KiB
Plaintext
######################################################################
|
|
# Begin of dvdisaster makefile template
|
|
######################################################################
|
|
|
|
# Currently supported locales
|
|
|
|
PO_LOCALES = pt_BR cs de it ru sv
|
|
MAN_LOCALES = de
|
|
|
|
# Search for TAGS: online-docs
|
|
# Don't forget edit NODIST for new doc locales
|
|
|
|
# Local settings (not changeable from the configure script)
|
|
|
|
# Where to put tar archives (arch, srcdist)
|
|
TAR_PREFIX=/dev/shm
|
|
|
|
######################################################################
|
|
# Take over variables from configure
|
|
######################################################################
|
|
|
|
VERSION = $(CFG_VERSION)
|
|
|
|
SRCDIR = $(CFG_SRCDIR)
|
|
PKGNAME = $(CFG_PKGNAME)
|
|
PREFIX = $(CFG_PREFIX)
|
|
BINDIR = $(CFG_BINDIR)
|
|
MANDIR = $(CFG_MANDIR)
|
|
DOCDIR = $(CFG_DOCDIR)
|
|
DOCSUBDIR = $(CFG_DOCDIR)/$(CFG_DOCSUBDIR)
|
|
LOCALEDIR = $(CFG_LOCALEDIR)
|
|
BUILDROOT = $(CFG_BUILDROOT)
|
|
BUILDTMP = $(CFG_BUILDTMP)
|
|
|
|
INTL_INCL = $(CFG_INTL_INCL)
|
|
INTL_LFLAGS = $(CFG_INTL_LFLAGS)
|
|
INTL_LIBS = $(CFG_INTL_LIBS)
|
|
|
|
CAM_LFLAGS = $(CFG_CAM_LFLAGS)
|
|
CAM_LIBS = $(CFG_CAM_LIBS)
|
|
|
|
GTK_CFLAGS = $(CFG_GTK2_CFLAGS)
|
|
GTK_LIBS = $(CFG_GTK2_LIBS)
|
|
GTK_BINDIR = $(CFG_GTK2_BINDIR)
|
|
|
|
EFENCE_LFLAGS = $(CFG_EFENCE_LFLAGS)
|
|
EFENCE_LIBS = $(CFG_EFENCE_LIBS)
|
|
|
|
SYS_OPTIONS = $(CFG_SYS_OPTIONS)
|
|
SYS_NAME = $(CFG_SYS_NAME)
|
|
HAVE_OPTIONS = $(CFG_HAVE_OPTIONS)
|
|
WITH_OPTIONS = $(CFG_WITH_OPTIONS)
|
|
OTHER_OPTIONS = $(CFG_OTHER_OPTIONS) -DVERSION=\"$(VERSION)\"
|
|
SSE2_OPTIONS = $(CFG_SSE2_OPTIONS)
|
|
ALTIVEC_OPTIONS = $(CFG_ALTIVEC_OPTIONS)
|
|
|
|
LOCATIONS = -DSRCDIR=\"$(SRCDIR)\" -DBINDIR=\"$(BINDIR)\" -DDOCDIR=\"$(DOCSUBDIR)\" -DLOCALEDIR=\"$(LOCALEDIR)\"
|
|
COPTS = $(CFLAGS) $(LOCATIONS) $(SYS_OPTIONS) $(SYS_NAME) $(HAVE_OPTIONS) $(WITH_OPTIONS) $(OTHER_OPTIONS) $(INTL_INCL) $(CAM_INCL) $(GTK_CFLAGS) $(MUDFLAP_CFLAGS)
|
|
LOPTS = $(LDFLAGS) $(INTL_LFLAGS) $(CAM_LFLAGS) $(EFENCE_LFLAGS) $(MUDFLAP_LFLAGS)
|
|
|
|
LIBS = $(INTL_LIBS) $(CAM_LIBS) $(GTK_LIBS) $(EFENCE_LIBS) $(MUDFLAP_LIBS) -lm
|
|
|
|
CFILES = $(CFG_CFILES)
|
|
OFILES = $(CFG_OFILES)
|
|
|
|
######################################################################
|
|
# Compilation related
|
|
######################################################################
|
|
|
|
.PHONY : all help show locale time-stamp
|
|
|
|
${BUILDTMP}/%.o : %.c
|
|
@echo "Compiling:" $?
|
|
@$(CC) $(COPTS) -c $? -o $@
|
|
|
|
all: time-stamp dvdisaster
|
|
|
|
# Building the dvdisaster binary
|
|
|
|
time-stamp:
|
|
@$(SRCDIR)/scripts/time-stamper.bash $(SRCDIR)/build.h
|
|
|
|
dvdisaster: inlined-icons.h $(OFILES)
|
|
@echo "Linking : dvdisaster"
|
|
@$(CC) $(LOPTS) $(OFILES) $(LIBS) -o dvdisaster
|
|
@if test -e locale/de/LC_MESSAGES/dvdisaster.mo \
|
|
|| echo $(WITH_OPTIONS) | grep "NLS_NO" >/dev/null; \
|
|
then echo "not touching locale"; \
|
|
else $(MAKE) --no-print-directory -C locale; \
|
|
fi
|
|
|
|
inlined-icons.h: icons/read.png icons/create.png icons/scan.png icons/fix.png icons/verify.png
|
|
@gdk-pixbuf-csource --raw --name=dvdisaster_read icons/read.png >inlined-icons.h
|
|
@gdk-pixbuf-csource --raw --name=dvdisaster_create icons/create.png >>inlined-icons.h
|
|
@gdk-pixbuf-csource --raw --name=dvdisaster_scan icons/scan.png >>inlined-icons.h
|
|
@gdk-pixbuf-csource --raw --name=dvdisaster_fix icons/fix.png >>inlined-icons.h
|
|
@gdk-pixbuf-csource --raw --name=dvdisaster_verify icons/verify.png >>inlined-icons.h
|
|
@gdk-pixbuf-csource --raw --name=dvdisaster_open_ecc icons/open-ecc.png >>inlined-icons.h
|
|
@gdk-pixbuf-csource --raw --name=dvdisaster_open_img icons/open-img.png >>inlined-icons.h
|
|
@gdk-pixbuf-csource --raw --name=dvdisaster_cd icons/cd.png >>inlined-icons.h
|
|
@gdk-pixbuf-csource --raw --name=dvdisaster_gtk_help icons/gtk-help.png >>inlined-icons.h
|
|
@gdk-pixbuf-csource --raw --name=dvdisaster_gtk_index icons/gtk-index.png >>inlined-icons.h
|
|
@gdk-pixbuf-csource --raw --name=dvdisaster_gtk_preferences icons/gtk-preferences.png >>inlined-icons.h
|
|
@gdk-pixbuf-csource --raw --name=dvdisaster_gtk_quit icons/gtk-quit.png >>inlined-icons.h
|
|
@gdk-pixbuf-csource --raw --name=dvdisaster_gtk_stop icons/gtk-stop.png >>inlined-icons.h
|
|
|
|
$(BUILDTMP)/help-dialogs.o: help-dialogs.c simple-md5sum
|
|
@if test -e fingerprints.md5; \
|
|
then if test -e help-dialogs.h; then rm help-dialogs.h; fi; \
|
|
mv inlined-icons.h inlined-icons.saved; \
|
|
mv build.h build.saved; \
|
|
./simple-md5sum -b *.h *.c | sort -k2 >tmp.md5; \
|
|
sort -k2 < fingerprints.md5 >tmp2.md5; \
|
|
mv inlined-icons.saved inlined-icons.h; \
|
|
mv build.saved build.h; \
|
|
if ! cmp tmp2.md5 tmp.md5 >/dev/null; \
|
|
then echo "#define MODIFIED_SOURCE 1" >> help-dialogs.h; \
|
|
else echo "#define UNMODIFIED_SOURCE 1" >> help-dialogs.h; \
|
|
fi; \
|
|
rm tmp.md5 tmp2.md5; \
|
|
else echo "#define MODIFIED_SOURCE 1" >> help-dialogs.h; \
|
|
fi
|
|
@echo "Compiling:" help-dialogs.c
|
|
@$(CC) $(COPTS) -c help-dialogs.c -o $(BUILDTMP)/help-dialogs.o
|
|
|
|
$(BUILDTMP)/rs-encoder-sse2.o: rs-encoder-sse2.c
|
|
@echo "Compiling:" rs-encoder-sse2.c
|
|
@$(CC) $(SSE2_OPTIONS) $(COPTS) -c rs-encoder-sse2.c -o $(BUILDTMP)/rs-encoder-sse2.o
|
|
|
|
$(BUILDTMP)/rs-encoder-altivec.o: rs-encoder-altivec.c
|
|
@echo "Compiling:" rs-encoder-altivec.c
|
|
@$(CC) $(ALTIVEC_OPTIONS) $(COPTS) -c rs-encoder-altivec.c -o $(BUILDTMP)/rs-encoder-altivec.o
|
|
|
|
locale:
|
|
@$(MAKE) --no-print-directory -C locale
|
|
|
|
untranslated:
|
|
@$(MAKE) --no-print-directory -C locale check-untranslated
|
|
|
|
simple-md5sum: md5.c
|
|
@$(CC) $(COPTS) $(MUDFLAP_CFLAGS) -DSIMPLE_MD5SUM md5.c $(MUDFLAP_LFLAGS) $(MUDFLAP_LIBS) -o simple-md5sum
|
|
|
|
version.tex:
|
|
@echo "\\newcommand{\\projectversion}{$(VERSION)}" >$(SRCDIR)/documentation/config/version.tex
|
|
|
|
manual: version.tex
|
|
@echo "Producing user manual... "
|
|
@$(MAKE) --no-print-directory -C documentation/user-manual manual.pdf
|
|
|
|
manualclean:
|
|
@echo "Removing temporary user manual files... "
|
|
@$(MAKE) --no-print-directory -C documentation/user-manual clean
|
|
|
|
|
|
# Some usage info
|
|
|
|
help:
|
|
@echo "Building dvdisaster:"
|
|
@echo "show - show current configuration (taken over from ./configure)"
|
|
@echo "all - build dvdisaster"
|
|
@echo "install - install dvdisaster locally"
|
|
@echo "uninstall - uninstall dvdisaster"
|
|
@echo
|
|
@echo "Documentation related:"
|
|
@echo "manual - create the user manual (requires LaTeX)"
|
|
@echo
|
|
@echo "Locale related:"
|
|
@echo "locale - update locale files"
|
|
@echo "untranslated - show untranslated German strings"
|
|
@echo
|
|
@echo "Package maintenance:"
|
|
@echo "clean - remove all easily rebuildable files"
|
|
@echo "distclean - remove all files which are rebuildable"
|
|
@echo "archclean - remove all files which are rebuildable in an development setup"
|
|
@echo "arch - distclean and tar the source directory (dirty)"
|
|
@echo "srcdist - produce the source distribution tarball (polished)"
|
|
|
|
# Build configuration printing
|
|
|
|
show:
|
|
@echo -e "Current build configuration in ./GNUmakefile:\n"
|
|
@echo "VERSION = " $(VERSION)
|
|
@echo "CC = " $(CC)
|
|
@echo "MAKE = " $(MAKE)
|
|
@echo "SHELL = " $(SHELL)
|
|
@echo "SRCDIR = " $(SRCDIR)
|
|
@echo "PKGNAME = " $(PKGNAME)
|
|
@echo "PREFIX = " $(PREFIX)
|
|
@echo "BINDIR = " $(BINDIR)
|
|
@echo "MANDIR = " $(MANDIR)
|
|
@echo "LOCALEDIR = " $(LOCALEDIR)
|
|
@echo "DOCDIR = " $(DOCDIR)
|
|
@echo "DOCSUBDIR = " $(DOCSUBDIR)
|
|
@echo "BUILDROOT = " $(BUILDROOT)
|
|
@echo "BUILDTMP = " $(BUILDTMP)
|
|
@echo
|
|
@echo "INTL_INCL = " $(INTL_INCL)
|
|
@echo "INTL_LFLAGS = " $(INTL_LFLAGS)
|
|
@echo "INTL_LIBS = " $(INTL_LIBS)
|
|
@echo "GTK_CFLAGS = " $(GTK_CFLAGS)
|
|
@echo "GTK_LIBS = " $(GTK_LIBS)
|
|
@echo "GTK_BINDIR = " $(GTK_BINDIR)
|
|
@echo "EFENCE_LFLAGS= " $(EFENCE_LFLAGS)
|
|
@echo "EFENCE_LIBS = " $(EFENCE_LIBS)
|
|
@echo
|
|
@echo "SYS_OPTIONS = " $(SYS_OPTIONS)
|
|
@echo "SYS_NAME = " $(SYS_NAME)
|
|
@echo "HAVE_OPTIONS = " $(HAVE_OPTIONS)
|
|
@echo "WITH_OPTIONS = " $(WITH_OPTIONS)
|
|
@echo "OTHER_OPTIONS= " $(OTHER_OPTIONS)
|
|
@echo "SSE2_OPTIONS = " $(SSE2_OPTIONS)
|
|
@echo "ALTIVEC_OPTIONS= " $(ALTIVEC_OPTIONS)
|
|
@echo
|
|
@echo "CFLAGS = " $(CFLAGS)
|
|
@echo "COPTS = " $(COPTS)
|
|
@echo "LIBS = " $(LIBS)
|
|
@echo "LOPTS = " $(LOPTS)
|
|
|
|
######################################################################
|
|
# Distribution management
|
|
######################################################################
|
|
|
|
.PHONY : install uninstall clean distclean arch
|
|
.PHONY : srcdist
|
|
|
|
install: dvdisaster manual
|
|
@echo "Installing package..."
|
|
install -d $(BUILDROOT)$(BINDIR)
|
|
install dvdisaster $(BUILDROOT)$(BINDIR)
|
|
install -d $(BUILDROOT)$(DOCSUBDIR)
|
|
install -m 644 CHANGELOG $(BUILDROOT)$(DOCSUBDIR)
|
|
install -m 644 COPYING $(BUILDROOT)$(DOCSUBDIR)
|
|
install -m 644 CREDITS* $(BUILDROOT)$(DOCSUBDIR)
|
|
install -m 644 README.MODIFYING $(BUILDROOT)$(DOCSUBDIR)
|
|
install -m 644 TODO $(BUILDROOT)$(DOCSUBDIR)
|
|
install -d $(BUILDROOT)$(DOCSUBDIR)
|
|
(cd documentation/user-manual; install -m 644 manual.pdf $(BUILDROOT)$(DOCSUBDIR))
|
|
install -d $(BUILDROOT)$(MANDIR)/man1
|
|
install -d $(BUILDROOT)$(MANDIR)/de/man1
|
|
cd documentation; \
|
|
ESCAPED_DOCSUBDIR=`echo $(DOCSUBDIR) | sed -e 's/\//\\\\\//g'`; \
|
|
sed "s/%docdir%/$$ESCAPED_DOCSUBDIR\/html/" <dvdisaster.en.1 >dvdisaster.updated; \
|
|
install -m 644 dvdisaster.updated $(BUILDROOT)$(MANDIR)/man1/dvdisaster.1; \
|
|
sed "s/%docdir%/$$ESCAPED_DOCSUBDIR\/html/" <dvdisaster.de.1 >dvdisaster.updated; \
|
|
install -m 644 dvdisaster.updated $(BUILDROOT)$(MANDIR)/de/man1/dvdisaster.1; \
|
|
rm dvdisaster.updated
|
|
if echo $(WITH_OPTIONS) | grep "NLS_YES" >/dev/null; then \
|
|
cd locale; \
|
|
for i in ?? ??_??; do\
|
|
install -d $(BUILDROOT)$(LOCALEDIR)/$$i/LC_MESSAGES; \
|
|
install -m 644 $$i/LC_MESSAGES/dvdisaster.mo $(BUILDROOT)$(LOCALEDIR)/$$i/LC_MESSAGES; \
|
|
done \
|
|
fi
|
|
@echo "# dvdisaster uninstaller script" > $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
|
|
@echo "# Usage: sh dvdisaster-uninstall.sh" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
|
|
@echo >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
|
|
@echo "rm -f $(BINDIR)/dvdisaster $(BINDIR)/dvdisaster-uninstall.sh" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
|
|
@echo "rm -rf $(DOCSUBDIR)" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
|
|
@for i in $(PO_LOCALES); do \
|
|
echo "rm $(LOCALEDIR)/$$i/LC_MESSAGES/dvdisaster.mo" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh ; \
|
|
done
|
|
@echo "rm -f $(MANDIR)/man1/dvdisaster.1" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
|
|
@for i in $(MAN_LOCALES); do \
|
|
echo "rm $(MANDIR)/$$i/man1/dvdisaster.1" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh ; \
|
|
done
|
|
@echo "echo \"dvdisaster has been uninstalled.\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
|
|
|
|
uninstall:
|
|
@echo "Uninstalling package..."
|
|
rm -f $(BINDIR)/dvdisaster $(BINDIR)/dvdisaster-uninstall.sh
|
|
rm -rf $(DOCSUBDIR)
|
|
rm -f $(MANDIR)/man1/dvdisaster.1
|
|
for i in $(PO_LOCALES); do \
|
|
rm $(LOCALEDIR)/$$i/LC_MESSAGES/dvdisaster.mo; \
|
|
done
|
|
for i in $(MAN_LOCALES); do \
|
|
rm $(MANDIR)/$$i/man1/dvdisaster.1; \
|
|
done
|
|
|
|
archclean: distclean
|
|
@echo "Removing rebuildable documentation parts"
|
|
@$(MAKE) --no-print-directory -C $(SRCDIR)/documentation/codec-specs archclean
|
|
@$(MAKE) --no-print-directory -C $(SRCDIR)/documentation/user-manual archclean
|
|
|
|
distclean: clean
|
|
@echo "Removing configuration files"
|
|
@rm -f configure.log Makefile.config GNUmakefile locale/Makefile
|
|
@for i in locale/?? locale/??_??; do rm -rf $$i; done
|
|
|
|
# There might be a not executable simple-md5sum from a compiler run
|
|
# under a different architecture, so make sure we have a working binary
|
|
# in the clean target.
|
|
|
|
clean:
|
|
@echo "Removing rebuildable files"
|
|
@rm -rf *.o $(BUILDTMP)/*.o medium.* abbild.* dvdisaster .dvdisaster core core.* *.core
|
|
@rm -f inlined-icons.h help-dialogs.h
|
|
@find . -name \*\~ -print | xargs rm -f;
|
|
@find . -name \*.mo -print | xargs rm -f;
|
|
@find . -name \#\*\# -print | xargs rm -f;
|
|
@rm -f documentation/config/version.tex
|
|
@if test -e $(PKGNAME); then rm -rf $(PKGNAME); fi
|
|
@if test -e ~/.dvdisaster-original-author; then \
|
|
mv build.h build.saved ;\
|
|
if ! test -x simple-md5sum || ! ./simple-md5sum >/dev/null 2>&1; then \
|
|
rm -f simple-md5sum; \
|
|
$(MAKE) --no-print-directory simple-md5sum; \
|
|
echo "[simple-md5sum (re-)built]"; \
|
|
fi; \
|
|
./simple-md5sum -b *.h *.c >fingerprints.md5 ;\
|
|
mv build.saved build.h; \
|
|
fi
|
|
@rm -f simple-md5sum
|
|
@$(MAKE) --no-print-directory -C $(SRCDIR)/documentation/codec-specs clean;
|
|
@$(MAKE) --no-print-directory -C $(SRCDIR)/documentation/user-manual clean;
|
|
|
|
BUILD=`grep BUILD $(SRCDIR)/build.h | cut -d ' ' -f 3`
|
|
arch: archclean time-stamp
|
|
@cd .. ; tar -c -z -f $(TAR_PREFIX)/$(PKGNAME)-$(BUILD).tgz $(PKGNAME)
|
|
|
|
INSTALL: documentation/install.template
|
|
@sed "s/@@PKGNAME/$(PKGNAME)/" <documentation/install.template >INSTALL
|
|
|
|
srcdist: INSTALL distclean manual manualclean
|
|
@cd .. ; tar -c -j -X $(PKGNAME)/NODIST -f $(TAR_PREFIX)/$(PKGNAME).tar.bz2 $(PKGNAME)
|
|
@cd .. ; gpg --homedir .gnupg --default-key 758BCC23 --detach-sign --output $(TAR_PREFIX)/$(PKGNAME).tar.bz2.gpg --armor $(TAR_PREFIX)/$(PKGNAME).tar.bz2
|
|
|
|
|
|
|