LIB=groff
EXTRA_CFLAGS=-D__GETOPT_PREFIX=groff_ \
             -DENABLE_RELOCATABLE=1 \
             -DLIBDIR=\"$(libdir)\"
OBJS=\
  assert.$(OBJEXT) \
  change_lf.$(OBJEXT) \
  cmap.$(OBJEXT) \
  color.$(OBJEXT) \
  cset.$(OBJEXT) \
  device.$(OBJEXT) \
  errarg.$(OBJEXT) \
  error.$(OBJEXT) \
  fatal.$(OBJEXT) \
  filename.$(OBJEXT) \
  font.$(OBJEXT) \
  fontfile.$(OBJEXT) \
  geometry.$(OBJEXT) \
  getopt.$(OBJEXT) \
  getopt1.$(OBJEXT) \
  glyphuni.$(OBJEXT) \
  htmlhint.$(OBJEXT) \
  hypot.$(OBJEXT) \
  iftoa.$(OBJEXT) \
  invalid.$(OBJEXT) \
  itoa.$(OBJEXT) \
  lf.$(OBJEXT) \
  lineno.$(OBJEXT) \
  localcharset.$(OBJEXT) \
  macropath.$(OBJEXT) \
  matherr.$(OBJEXT) \
  maxfilename.$(OBJEXT) \
  maxpathname.$(OBJEXT) \
  mksdir.$(OBJEXT) \
  nametoindex.$(OBJEXT) \
  new.$(OBJEXT) \
  paper.$(OBJEXT) \
  prime.$(OBJEXT) \
  progname.$(OBJEXT) \
  ptable.$(OBJEXT) \
  quotearg.$(OBJEXT) \
  relocate.$(OBJEXT) \
  searchpath.$(OBJEXT) \
  spawnvp.$(OBJEXT) \
  string.$(OBJEXT) \
  strsave.$(OBJEXT) \
  symbol.$(OBJEXT) \
  tmpfile.$(OBJEXT) \
  tmpname.$(OBJEXT) \
  unicode.$(OBJEXT) \
  uniglyph.$(OBJEXT) \
  uniuni.$(OBJEXT) \
  version.$(OBJEXT) \
  $(LIBOBJS)
CCSRCS=\
  $(srcdir)/assert.cpp \
  $(srcdir)/change_lf.cpp \
  $(srcdir)/cmap.cpp \
  $(srcdir)/color.cpp \
  $(srcdir)/cset.cpp \
  $(srcdir)/device.cpp \
  $(srcdir)/errarg.cpp \
  $(srcdir)/error.cpp \
  $(srcdir)/fatal.cpp \
  $(srcdir)/filename.cpp \
  $(srcdir)/font.cpp \
  $(srcdir)/fontfile.cpp \
  $(srcdir)/geometry.cpp \
  $(srcdir)/glyphuni.cpp \
  $(srcdir)/htmlhint.cpp \
  $(srcdir)/hypot.cpp \
  $(srcdir)/invalid.cpp \
  $(srcdir)/lf.cpp \
  $(srcdir)/lineno.cpp \
  $(srcdir)/macropath.cpp \
  $(srcdir)/maxfilename.cpp \
  $(srcdir)/maxpathname.cpp \
  $(srcdir)/mksdir.cpp \
  $(srcdir)/mkstemp.cpp \
  $(srcdir)/nametoindex.cpp \
  $(srcdir)/new.cpp \
  $(srcdir)/paper.cpp \
  $(srcdir)/prime.cpp \
  $(srcdir)/ptable.cpp \
  $(srcdir)/relocate.cpp \
  $(srcdir)/searchpath.cpp \
  $(srcdir)/string.cpp \
  $(srcdir)/strsave.cpp \
  $(srcdir)/symbol.cpp \
  $(srcdir)/tmpfile.cpp \
  $(srcdir)/tmpname.cpp \
  $(srcdir)/unicode.cpp \
  $(srcdir)/uniglyph.cpp \
  $(srcdir)/uniuni.cpp \
  version.cpp
CSRCS=\
  $(srcdir)/fmod.c \
  $(srcdir)/getcwd.c \
  $(srcdir)/getopt.c \
  $(srcdir)/getopt1.c \
  $(srcdir)/iftoa.c \
  $(srcdir)/itoa.c \
  $(srcdir)/localcharset.c \
  $(srcdir)/matherr.c \
  $(srcdir)/progname.c \
  $(srcdir)/putenv.c \
  $(srcdir)/quotearg.c \
  $(srcdir)/spawnvp.c \
  $(srcdir)/strcasecmp.c \
  $(srcdir)/strerror.c \
  $(srcdir)/strncasecmp.c \
  $(srcdir)/strtol.c \
  $(srcdir)/../snprintf/snprintf.c
GENSRCS=\
  version.cpp

src_version=`cat $(top_srcdir)/VERSION`
src_revision=`cat $(top_srcdir)/REVISION`

version.cpp: $(top_srcdir)/VERSION $(top_srcdir)/REVISION
	@echo Making version.cpp
	@echo const char \*version_string = \"$(src_version)\"\; >$@
	@echo const char \*revision_string = \"$(src_revision)\"\; >>$@
	@echo extern \"C\" const char \*Version_string = \"$(src_version).$(src_revision)\"\; | \
	  sed -e 's/\.0\"/\"/' >>$@

# We have to avoid $(COMPILE.c) since we must not use groff's `assert.h'
snprintf.$(OBJEXT): $(srcdir)/../snprintf/snprintf.c
	$(CC) -c $(CDEFINES) $(CFLAGS) $(CPPFLAGS) \
	  $(srcdir)/../snprintf/snprintf.c

# Data for localcharset.c.  Taken from libiconv/libcharset.

all: charset.alias ref-add.sed ref-del.sed

charset.alias: $(srcdir)/config.charset
	$(SHELL) $(srcdir)/config.charset '$(HOST)' > t-$@
	mv t-$@ $@

PACKAGE=groff

ref-add.sed : $(srcdir)/ref-add.sin
	sed -e '/^#/d' \
	    -e 's/@''PACKAGE''@/$(PACKAGE)/g' $(srcdir)/ref-add.sin > t-$@
	mv t-$@ $@

ref-del.sed : $(srcdir)/ref-del.sin
	sed -e '/^#/d' \
	    -e 's/@''PACKAGE''@/$(PACKAGE)/g' $(srcdir)/ref-del.sin > t-$@
	mv t-$@ $@

MKINSTALLDIRS = $(SHELL) $(top_srcdir)/mkinstalldirs

install_data: install_charset_data
install_charset_data:
	test $(GLIBC21) != no || $(MKINSTALLDIRS) $(DESTDIR)$(libdir)
	if test -f $(DESTDIR)$(libdir)/charset.alias; then \
	  sed -f ref-add.sed $(DESTDIR)$(libdir)/charset.alias \
	      > $(DESTDIR)$(libdir)/t-charset.alias; \
	  $(INSTALL_DATA) $(DESTDIR)$(libdir)/t-charset.alias \
	                  $(DESTDIR)$(libdir)/charset.alias; \
	  rm -f $(DESTDIR)$(libdir)/t-charset.alias; \
	else \
	  if test $(GLIBC21) = no; then \
	    sed -f ref-add.sed charset.alias \
	        > $(DESTDIR)$(libdir)/t-charset.alias; \
	    $(INSTALL_DATA) $(DESTDIR)$(libdir)/t-charset.alias \
	                    $(DESTDIR)$(libdir)/charset.alias; \
	    rm -f $(DESTDIR)$(libdir)/t-charset.alias; \
	  fi; \
	fi

uninstall_sub: uninstall_charset_data
uninstall_charset_data:
	if test -f $(DESTDIR)$(libdir)/charset.alias; then \
	  sed -f ref-del.sed $(DESTDIR)$(libdir)/charset.alias \
	      > $(DESTDIR)$(libdir)/t-charset.alias; \
	  if grep '^# Packages using this file: $$' \
	          $(DESTDIR)$(libdir)/t-charset.alias > /dev/null; then \
	    rm -f $(DESTDIR)$(libdir)/charset.alias; \
	  else \
	    $(INSTALL_DATA) $(DESTDIR)$(libdir)/t-charset.alias \
	                    $(DESTDIR)$(libdir)/charset.alias; \
	  fi; \
	  rm -f $(DESTDIR)$(libdir)/t-charset.alias; \
	fi

clean: clean_charset
clean_charset:
	rm -f charset.alias ref-add.sed ref-del.sed
