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

LANGUAGES   = En De Fr Fi
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)

GEN_C_SRCS = \
	accel.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@

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

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

clean::
	$(RM) accel.c accel.h $(LANGUAGES:%=%.c) $(LANGUAGES:%=%.h) progman

accel.c accel.h: $(WINERC) Xx.rc

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

dummy:

### Dependencies:
