TOPSRCDIR = @top_srcdir@
TOPOBJDIR = ../..
SRCDIR    = @srcdir@
VPATH     = @srcdir@
MODULE    = none
PROGRAMS  = progman
ALL_LIBS  = $(WINELIB) $(X_LIBS) $(XPM_LIB) $(XLIB) $(LDLIBS)
DEFS      = -I$(SRCDIR)
RCFLAGS   = -w32 -h

LANGUAGES   = En Da De Fr Fi Ko Hu It Va
LICENSELANG = En

# 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 = \
	dialog.c \
	group.c \
	grpfile.c \
	license.c \
	main.c \
	program.c

# Some strings need addresses >= 0x10000
STRINGSRCS = \
	string.c \
	$(LICENSELANG:%=License_%.c)

RC_SRCS = \
	accel.rc \
	$(LANGUAGES:%=%.rc)

C_SRCS = $(MOSTSRCS) $(STRINGSRCS)

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

all: check_winerc $(PROGRAMS)

depend:: $(RC_SRCS:.rc=.h)

@MAKE_RULES@

progman: $(MOSTOBJS) $(STRINGOBJS)
	$(CC) -o progman $(MOSTOBJS) $(LDOPTIONS) $(ALL_LIBS) $(STRINGOBJS)

install: dummy
	$(INSTALL_PROGRAM) progman $(bindir)/progman

$(RC_SRCS:.rc=.c) $(RC_SRCS:.rc=.h): $(WINERC)

dummy:

### Dependencies:
