TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../..
SRCDIR    = @srcdir@
VPATH     = @srcdir@
MODULE    = none
PROGRAMS  = winhelp hlp2sgml
ALL_LIBS  = $(WINELIB) $(X_LIBS) $(XPM_LIB) $(XLIB) $(LDLIBS)

LANGUAGES   = En De Fr Fi

# Installation infos

INSTALL         = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA    = @INSTALL_DATA@
prefix          = @prefix@
exec_prefix     = @exec_prefix@
bindir          = @bindir@
libdir          = @libdir@
sysconfdir      = @sysconfdir@
mandir          = @mandir@/man1
manext          = .1

MOSTSRCS = \
	winhelp.c \
	hlpfile.c \
	macro.c

# Some strings need addresses >= 0x10000
STRINGSRCS = \
	string.c

GEN_C_SRCS = \
	y.tab.c \
	lex.yy.c \
	$(LANGUAGES:%=%.c)

C_SRCS = $(MOSTSRCS) $(STRINGSRCS)

MOSTOBJS = $(MOSTSRCS:.c=.o)
STRINGOBJS = $(STRINGSRCS:.c=.o) $(GEN_C_SRCS:.c=.o)

all: check_winerc $(PROGRAMS)

@MAKE_RULES@

# Some strings need addresses >= 0x10000
winhelp: $(MOSTOBJS) $(STRINGOBJS)
	$(CC) -o winhelp $(MOSTOBJS) $(LDOPTIONS) $(ALL_LIBS) $(STRINGOBJS)

hlp2sgml: hlp2sgml.o hlpfile.o
	$(CC) -o hlp2sgml hlp2sgml.o hlpfile.o

install: dummy
	$(INSTALL_PROGRAM) winhelp $(bindir)/winhelp
	$(INSTALL_PROGRAM) hlp2sgml $(bindir)/hlp2sgml

y.tab.c y.tab.h: macro.yacc.y
	$(YACC) -d -t $(SRCDIR)/macro.yacc.y

lex.yy.c: macro.lex.l
	$(LEX) -8 -i $(SRCDIR)/macro.lex.l

$(LANGUAGES:%=%.c) $(LANGUAGES:%=%.h): $(WINERC) Xx.rc

dummy:

### Dependencies:
