#-----------------------------------------------------------------------
# This is the template that the libtecla configure script uses to create
# the libtecla Makefile. It does this by replacing all instances of
# @name@ with the value of the correspondingly named configuration
# variable. You should find another file in the same directory as this
# one, called "configure.in". The latter file contains extensive comments
# explaining how this all works.
#-----------------------------------------------------------------------

# Where is the source code?

srcdir = @srcdir@

# Where do you want to install the library, its header file, and the man pages?

prefix=@prefix@
exec_prefix=@exec_prefix@
LIBDIR=$(DESTDIR)@libdir@
INCDIR=$(DESTDIR)@includedir@
MANDIR=$(DESTDIR)@mandir@
BINDIR=$(DESTDIR)@bindir@

# Which C compiler do you want to use?

CC = @CC@

# If 'make' doesn't define the MAKE variable, define it here.

@SET_MAKE@

# To use RANLIB set the RANLIB variable to ranlib. Otherwise set it to
# :, which is the bourne shell do-nothing command.

RANLIB = @RANLIB@

# Optional flags to pass to the linker.

LDFLAGS = @LDFLAGS@

# Optional C pre-processor flags.

CPPFLAGS = @CPPFLAGS@

# The following optional defines change the characteristics of the library.
#
# USE_TERMINFO
#   Use the terminfo terminal information database when looking up
#   terminal characteristics. Most modern UNIX and UNIX-like operating
#   systems support terminfo, so this define should normally be included.
#   If in doubt leave it in, and see if the library compiles.
# USE_TERMCAP
#   If you don't have terminfo but do have the termcap database, replace
#   the -DUSE_TERMINFO with -DUSE_TERMCAP. If there is a termcap.h in
#   /usr/include/, also add -DHAVE_TERMCAP_H.
#
# If neither USE_TERMINFO nor USE_TERMCAP are included, ANSI VT100 control
# sequences will be used to control all terminal types.
#
# For Solaris and Linux, use:
#
#  DEFINES = -DUSE_TERMINFO
#

DEFINES = @DEFS@

#
# The following defines are used in addition to the above when compiling
# the reentrant version of the library. Note that the definition of
# _POSIX_C_SOURCE to request reentrant functions, has the unfortunate
# side-effect on some systems of stopping the TIOCGWINSZ ioctl macro from
# getting defined. This in turn stops the library from being
# able to respond to terminal size changes. Under Solaris this can be
# remedied by adding -D__EXTENSIONS__. On linux this isn't necessary.
# If you don't get this right, the library will still work, but
# it will get confused if the terminal size gets changed and you try to
# edit a line that exceeds the terminal width.
#
# Thus on Solaris you should use:
#
#   DEFINES_R = -D_POSIX_C_SOURCE=199506L -D__EXTENSIONS__
#
# and on linux you should use:
#
#   DEFINES_R = -D_POSIX_C_SOURCE=199506L
#

DEFINES_R = @DEFS_R@

#
# The compiler optimization flags. I like to keep this separate so
# that I can set it to -g from the 'make' command line without having
# to edit this file when debugging the library. If you aren't working
# on modifying the library, leave this set to -O.
#

OPT = -O

#
# These are paranoid gcc warning flags to use when compiling new code.
# Simply invoke make with WARNING_FLAGS='$(PEDANTIC_FLAGS)'.
#
PEDANTIC_FLAGS=-Wall -Wshadow -Wpointer-arith -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls

#
# Specify any extra compiler warning options that you want to use.
# Leave this blank unless you are porting the library to a new system,
# or modifying the library.
#

WARNING_FLAGS=

#
# If you want to compile the demo program, specify any system
# libraries that are needed for the terminal I/O functions.
#
# If you are using terminfo, you will probably only need -lcurses.
# For termcap you may need -ltermcap or -ltermlib.
#
# For Solaris, use:
#
#  LIBS = -lcurses
#
# For linux, use:
#
#  LIBS = -lncurses
#

LIBS = @LIBS@

#
# List the default target libraries. This should be one or
# both of the words "normal" and "reentrant".
#
TARGETS = @TARGETS@

#
# List which types of the above libraries are required.
# This should be one or both of the words "static" and "shared".
#
TARGET_LIBS = @TARGET_LIBS@

#
# If you want the demo programs to be built, the following variable
# should be assigned the single word: demos. If it isn't assigned
# anything, the demo programs won't be built.
#
DEMOS = demos

#
# List the programs that are to be made by default.
#
PROGRAMS = enhance

#
# List programs for which reentrant versions are to be built by default.
#
PROGRAMS_R =

#-----------------------------------------------------------------------
# You shouldn't need to change anything below this line.
#-----------------------------------------------------------------------

CFLAGS = $(OPT) $(WARNING_FLAGS) $(DEFINES) @CFLAGS@ @SHARED_CFLAGS@

default: $(TARGETS)

normal:
	@$(MAKE) -f $(srcdir)/Makefile.rules TARGETS="$(TARGET_LIBS)" SUFFIX="" CFLAGS="$(CFLAGS)" CC="$(CC)" OBJDIR=normal_obj LINK_SHARED='@LINK_SHARED@' SHARED_EXT='@SHARED_EXT@' SHARED_ALT='@SHARED_ALT@' LIBS='$(LIBS)' srcdir='$(srcdir)' LIBDIR='$(LIBDIR)' LN_S='@LN_S@' DEMOS="$(DEMOS)" PROGRAMS='$(PROGRAMS)' RANLIB='$(RANLIB)' LDFLAGS='$(LDFLAGS)' CPPFLAGS='$(CPPFLAGS)'

reentrant:
	@$(MAKE) -f $(srcdir)/Makefile.rules TARGETS="$(TARGET_LIBS)" SUFFIX="_r" CFLAGS="$(CFLAGS) $(DEFINES_R)" CC="$(CC)" OBJDIR=reentrant_obj LINK_SHARED='@LINK_SHARED@' SHARED_EXT='@SHARED_EXT@' SHARED_ALT='@SHARED_ALT@' LIBS='$(LIBS)' srcdir='$(srcdir)' LIBDIR='$(LIBDIR)' LN_S='@LN_S@' DEMOS="$(DEMOS)" PROGRAMS='$(PROGRAMS_R)' RANLIB='$(RANLIB)' LDFLAGS='$(LDFLAGS)' CPPFLAGS='$(CPPFLAGS)'

demos: normal

demos_r: reentrant

clean:
	rm -rf *.o normal_obj reentrant_obj libtecla*.a demo demo[0-9] demo_r demo[0-9]_r enhance *~ man/*~ man/*/*~ html/*~ compile_reentrant compile_normal `/bin/ls -1 man/*/*.in | sed 's/\.in$$//'`
	@endings="@SHARED_EXT@ @SHARED_ALT@" ; \
	for alt in $$endings ; do \
	  lib="libtecla*$$alt" ; \
	  rm -f $$lib; echo rm -f $$lib ; \
	done

distclean: clean
	rm -rf config.cache config.status config.log Makefile libtecla.map.opt \
               autom*.cache
	cp $(srcdir)/Makefile.stub Makefile

install_lib: $(TARGETS) $(LIBDIR)
	@for lib in libtecla.a libtecla_r.a ; do \
	   if [ -f $$lib ] ; then \
	     cp $$lib $(LIBDIR)/ ; chmod ugo+r $(LIBDIR)/$$lib; \
	     echo "cp $$lib $(LIBDIR)/ ; chmod ugo+r $(LIBDIR)/$$lib"; \
	   fi ; \
	done
	@for lib in libtecla libtecla_r ; do \
	   src="$$lib@SHARED_EXT@"; \
	   if [ -f $$src ] ; then \
	     dst="$(LIBDIR)/$$src"; \
	     cp -f $$src $$dst; chmod a=rX $$dst; \
	     echo "cp -f $$src $$dst ; chmod a=rX $$dst"; \
	     endings="@SHARED_ALT@" ; \
	     for alt in $$endings ; do \
	       lnk="$$lib$$alt"; \
	       (cd $(LIBDIR); rm -f $$lnk; @LN_S@ $$src $$lnk); \
	       echo "(cd $(LIBDIR); rm -f $$lnk; @LN_S@ $$src $$lnk)"; \
	     done ; \
	   fi ; \
	done

install_inc: $(INCDIR)
	@if [ -f $(srcdir)/libtecla.h ]; then \
	  cp $(srcdir)/libtecla.h $(INCDIR)/ ; chmod ugo+r $(INCDIR)/libtecla.h; \
	  echo "cp $(srcdir)/libtecla.h $(INCDIR)/ ; chmod ugo+r $(INCDIR)/libtecla.h"; \
	fi

install_man: $(MANDIR) libr_man func_man prog_man misc_man file_man

libr_man:
	if test "@MAKE_MAN_PAGES@"_ = "yes"_; then \
	  for template in man/libr/*.in; do \
	    page=`basename "$$template" .in`; \
	    $(srcdir)/install-sh -c -m 644 man/libr/$$page ${MANDIR}/@LIBR_MANDIR@/$$page.@LIBR_MANEXT@; \
	  done ; \
	fi

func_man:
	if test "@MAKE_MAN_PAGES@"_ = "yes"_; then \
	  for template in man/func/*.in; do \
	    page=`basename "$$template" .in`; \
	    $(srcdir)/install-sh -c -m 644 man/func/$$page ${MANDIR}/@FUNC_MANDIR@/$$page.@FUNC_MANEXT@; \
	  done ; \
	fi

prog_man:
	if test "@MAKE_MAN_PAGES@"_ = "yes"_; then \
	  for template in man/prog/*.in; do \
	    page=`basename "$$template" .in`; \
	    $(srcdir)/install-sh -c -m 644 man/prog/$$page ${MANDIR}/@PROG_MANDIR@/$$page.@PROG_MANEXT@; \
	  done ; \
	fi

misc_man:
	if test "@MAKE_MAN_PAGES@"_ = "yes"_; then \
	  for template in man/misc/*.in; do \
	    page=`basename "$$template" .in`; \
	    $(srcdir)/install-sh -c -m 644 man/misc/$$page ${MANDIR}/@MISC_MANDIR@/$$page.@MISC_MANEXT@; \
	  done ; \
	fi

file_man:
	if test "@MAKE_MAN_PAGES@"_ = "yes"_; then \
	  for template in man/file/*.in; do \
	    page=`basename "$$template" .in`; \
	    $(srcdir)/install-sh -c -m 644 man/file/$$page ${MANDIR}/@FILE_MANDIR@/$$page.@FILE_MANEXT@; \
	  done ; \
	fi

install_bin: $(BINDIR) $(PROGRAMS) $(PROGRAMS_R)
	progs="$(PROGRAMS) $(PROGRAMS_R)"; \
	for prog in $$progs; do \
	  $(srcdir)/install-sh -c -m 755 -s $$prog $(BINDIR)/; \
	done

install: install_lib install_inc install_man install_bin

# Make any missing installation directories.

$(MANDIR) $(LIBDIR) $(INCDIR) $(BINDIR):
	$(srcdir)/install-sh -d $@
	chmod ugo+rx $@
