NULL=
MAIN=u4$(EXEEXT)

VERSION=0.9

SRCS=\
        annotation.c \
        armor.c \
        camp.c \
        codex.c \
        combat.c \
        death.c \
        debug.c \
        direction.c \
        dngview.c \
        dungeon.c \
        error.c \
        event.c \
        event_$(UI).c \
        game.c \
        io.c \
        image_$(UI).c \
        intro.c \
        item.c \
        list.c \
        location.c \
        map.c \
        maploader.c \
        mapmgr.c \
        menu.c \
        monster.c \
        moongate.c \
        movement.c \
        music.c \
        names.c \
        person.c \
        player.c \
        portal.c \
        rle.c \
        savegame.c \
        scale.c \
        screen.c \
        screen_$(UI).c \
        settings.c \
        shrine.c \
        sound.c \
        spell.c \
        stats.c \
        tile.c \
        tileset.c \
        u4.c \
        u4_$(UI).c \
        u4file.c \
        utils.c \
        unzip.c \
        vendor.c \
        weapon.c \
        xml.c \
        lzw/hash.c \
        lzw/lzw.c \
        lzw/u4decode.c \
        $(NULL)

OBJS += $(SRCS:.c=.o)

all:: $(MAIN) mkutils

mkutils::  dumpsavegame$(EXEEXT) lzwenc$(EXEEXT) lzwdec$(EXEEXT) rleenc$(EXEEXT) rledec$(EXEEXT) tlkconv$(EXEEXT)

$(MAIN): $(OBJS)
	$(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS)

dumpsavegame$(EXEEXT) : util/dumpsavegame.o savegame.o io.o names.o
	$(CC) $(CFLAGS) -o dumpsavegame util/dumpsavegame.o savegame.o io.o names.o

lzwenc$(EXEEXT) : util/lzwenc.o lzw/hash.o util/pngconv.o
	$(CC) $(CFLAGS) -o lzwenc util/lzwenc.o lzw/hash.o util/pngconv.o -lpng -lz

lzwdec$(EXEEXT) : util/lzwdec.o lzw/lzw.o lzw/u4decode.o lzw/hash.o util/pngconv.o
	$(CC) $(CFLAGS) -o lzwdec util/lzwdec.o lzw/lzw.o lzw/u4decode.o lzw/hash.o util/pngconv.o -lpng -lz

rleenc$(EXEEXT) : util/rleenc.o util/pngconv.o
	$(CC) $(CFLAGS) -o rleenc util/rleenc.o util/pngconv.o -lpng -lz

rledec$(EXEEXT) : util/rledec.o rle.o util/pngconv.o
	$(CC) $(CFLAGS) -o rledec util/rledec.o rle.o util/pngconv.o -lpng -lz

tlkconv$(EXEEXT) : util/tlkconv.o
	$(CC) $(CFLAGS) -o tlkconv util/tlkconv.o $(shell xml2-config --libs)

clean:: cleanutil
	rm -rf *~ */*~ $(OBJS) $(MAIN)

cleanutil::
	rm -rf util/dumpsavegame.o dumpsavegame$(EXEEXT) util/lzwenc.o lzwenc$(EXEEXT) util/lzwdec.o lzwdec$(EXEEXT) util/pngconv.o util/rleenc.o rleenc$(EXEEXT) util/rledec.o rledec$(EXEEXT) util/tlkconv.o tlkconv$(EXEEXT)

TAGS: $(SRCS)
	etags $(SRCS)
