# template-makefile for Lynx src directory

SHELL		= @CONFIG_SHELL@
CDPATH		= .

x		= @PROG_EXT@

@SET_MAKE@
prefix		= @prefix@
exec_prefix	= @exec_prefix@
top_srcdir	= @top_srcdir@
srcdir		= @srcdir@
VPATH		= $(srcdir)

top_builddir	= ..

# see po/makefile
localedir	= @NLS_DATADIR@/locale

# Symbols which the configure script can set in each makefile:
CC		= @CC@
CPP		= @CPP@
CFLAGS		= @CFLAGS@
DEFS		= @DEFS@
CHARSET_DEFS	= @CHARSET_DEFS@
CPPFLAGS	= @CPPFLAGS@
_O		= .o

LIBS		= @LIBS@ $(RESOLVLIB) $(WAISLIB) $(SITE_LIBS)
LDFLAGS		= @LDFLAGS@

# Symbols inherited from the top-level makefile
RESOLVLIB	= # FIXME: set in parent makefile
SITE_DEFS	= # FIXME: set in parent makefile
SITE_LIBS	= # FIXME: set in parent makefile
WAISLIB		= # FIXME: set in parent makefile

WWWINC		= WWW/Library/Implementation
WWWLIB		= $(top_builddir)/WWW/Library/Implementation/libwww.a

INTLLIB		= @INTLDIR_MAKE@@INTLLIBS@
INTLDIR_CPPFLAGS= @INTLDIR_CPPFLAGS@-I$(top_srcdir)/intl

CPP_OPTS	= $(CPPFLAGS) $(DEFS) $(CHARSET_DEFS) \
		-DLOCALEDIR=\"$(localedir)\" \
		-I. \
		-I$(top_builddir) \
		-Ichrtrans \
		-I$(srcdir)/chrtrans \
		-I$(top_srcdir) \
		-I$(top_srcdir)/src \
		-I$(top_srcdir)/$(WWWINC) \
		$(INTLDIR_CPPFLAGS) $(SITE_DEFS)
CC_OPTS		= $(CPP_OPTS) $(CFLAGS)

LINT		= @LINT@
LINTOPTS	=

COMPRESS_PROG	=@COMPRESS_PROG@
COMPRESS_EXT	=@COMPRESS_EXT@

CHARTRANS_OBJS	= UCdomap$(_O) UCAux$(_O) UCAuto$(_O)
OBJS	= \
	LYClean$(_O) LYShowInfo$(_O) LYEdit$(_O) LYStrings$(_O) LYMail$(_O) \
	HTAlert$(_O) GridText$(_O) LYGetFile$(_O) LYMain$(_O) LYMainLoop$(_O) \
	LYCurses$(_O) LYBookmark$(_O) LYUtils$(_O) LYOptions$(_O) \
	LYReadCFG$(_O) LYSearch$(_O) LYHistory$(_O) LYForms$(_O) LYPrint$(_O) \
	LYrcFile$(_O) LYDownload$(_O) LYNews$(_O) LYKeymap$(_O) HTML$(_O) \
	HTFWriter$(_O) HTInit$(_O) DefaultStyle$(_O) LYUpload$(_O) \
	LYLeaks$(_O) LYexit$(_O) LYJump$(_O) LYList$(_O) LYCgi$(_O) \
	LYTraversal$(_O) LYEditmap$(_O) LYCharSets$(_O) LYCharUtils$(_O) \
	LYMap$(_O) LYCookie$(_O) LYStyle$(_O) LYHash$(_O) LYPrettySrc$(_O) \
	TRSTable$(_O) $(CHARTRANS_OBJS) @LIBOBJS@

C_SRC	= $(OBJS:$(_O)=.c)

all: lynx$x

.SUFFIXES : $(_O) .i

.c$(_O):
@RULE_CC@
	@ECHO_CC@$(CC) $(CC_OPTS) -c $(srcdir)/$*.c

.c.i:
@RULE_CC@
	@ECHO_CC@$(CPP) -C $(CPP_OPTS) $(srcdir)/$*.c >$@

lynx$x:   message do_chartrans_stuff $(top_builddir)/LYHelp.h $(OBJS) $(WWWLIB)
	@echo "Linking and creating Lynx executable"
	$(CC) $(CC_OPTS) $(LDFLAGS) -o $@  $(OBJS) $(WWWLIB) $(INTLLIB) $(LIBS)
	@echo "Copying Lynx executable into top-level directory"
	rm -f $(top_builddir)/$@
	cp $@ $(top_builddir)/
	@echo "Welcome to Lynx!"

message:
	@echo "Compiling Lynx sources"

do_chartrans_stuff:
	-cd chrtrans && $(MAKE) \
		SITE_DEFS="$(SITE_DEFS)" \
		CFLAGS="$(CFLAGS)" \
		CPPFLAGS="$(CPPFLAGS)" \
		CC="$(CC)" tables

lint:
	$(LINT) $(LINTOPTS) $(CPP_OPTS) *.c  > $(top_builddir)/lint.lynx

clean:
	rm -f lynx$x core *.core *.leaks *.[oi] *.bak tags TAGS
	cd chrtrans && $(MAKE) clean

distclean: clean

CMN=$(top_srcdir)/WWW/Library/Implementation/

HTFWriter$(_O):		$(top_srcdir)/userdefs.h
HTInit$(_O):		$(top_srcdir)/userdefs.h
LYCharSets$(_O):	$(top_srcdir)/userdefs.h
LYGetFile$(_O):		$(top_srcdir)/userdefs.h
LYKeymap$(_O):		$(top_srcdir)/userdefs.h
LYMail$(_O):		$(top_srcdir)/userdefs.h
LYMain$(_O):		$(top_srcdir)/userdefs.h $(top_builddir)/lynx_cfg.h
LYMainLoop$(_O):	$(top_srcdir)/userdefs.h
LYOptions$(_O):		$(top_srcdir)/userdefs.h
LYReadCFG$(_O):		$(top_srcdir)/userdefs.h
LYShowInfo$(_O):	$(top_builddir)/cfg_defs.h
LYTraversal$(_O):	$(top_srcdir)/userdefs.h
LYUtils$(_O):		$(top_srcdir)/userdefs.h
LYrcFile$(_O):		$(top_srcdir)/userdefs.h
LYLeaks$(_O):		$(CMN)LYLeaks.h $(CMN)HTString.h

CHRTR= chrtrans/

TABLES= \
 $(CHRTR)cp1250_uni.h \
 $(CHRTR)cp1251_uni.h \
 $(CHRTR)cp1252_uni.h \
 $(CHRTR)cp1253_uni.h \
 $(CHRTR)cp1255_uni.h \
 $(CHRTR)cp1256_uni.h \
 $(CHRTR)cp1257_uni.h \
 $(CHRTR)cp437_uni.h \
 $(CHRTR)cp737_uni.h \
 $(CHRTR)cp775_uni.h \
 $(CHRTR)cp850_uni.h \
 $(CHRTR)cp852_uni.h \
 $(CHRTR)cp862_uni.h \
 $(CHRTR)cp864_uni.h \
 $(CHRTR)cp866_uni.h \
 $(CHRTR)cp869_uni.h \
 $(CHRTR)def7_uni.h \
 $(CHRTR)dmcs_uni.h \
 $(CHRTR)hp_uni.h \
 $(CHRTR)iso01_uni.h \
 $(CHRTR)iso02_uni.h \
 $(CHRTR)iso03_uni.h \
 $(CHRTR)iso04_uni.h \
 $(CHRTR)iso05_uni.h \
 $(CHRTR)iso06_uni.h \
 $(CHRTR)iso07_uni.h \
 $(CHRTR)iso08_uni.h \
 $(CHRTR)iso09_uni.h \
 $(CHRTR)iso10_uni.h \
 $(CHRTR)iso15_uni.h \
 $(CHRTR)koi8r_uni.h \
 $(CHRTR)mac_uni.h \
 $(CHRTR)mnem_suni.h \
 $(CHRTR)mnem2_suni.h \
 $(CHRTR)next_uni.h \
 $(CHRTR)rfc_suni.h \
 $(CHRTR)utf8_uni.h \
 $(CHRTR)viscii_uni.h

$(TABLES):
	-cd chrtrans && $(MAKE) tables

UCdomap$(_O): UCdomap.c chrtrans/UCkd.h chrtrans/makeuctb$x chrtrans/makeuctb.c \
	UCdomap.h $(CMN)UCMap.h $(TABLES) $(top_srcdir)/userdefs.h

chrtrans/makeuctb$x:
	cd chrtrans; make makeuctb$x

UCAux$(_O) : UCAux.c $(CMN)UCAux.h $(CMN)UCDefs.h
LYCookie$(_O): $(top_srcdir)/userdefs.h

depend : $(TABLES)
	makedepend -fmakefile -- $(CC_OPTS) -- $(C_SRC)

# DO NOT DELETE THIS LINE -- make depend depends on it.
