BASEDIR=..

include $(BASEDIR)/Makefile-rules

###############################################################################

CFLAGS += -DELKS=1

###############################################################################

PRGS = fm matrix cons ttyinfo sl ttyclock ttypong tetris invaders anarch

ifeq ($(CONFIG_APP_ANARCH_GFX), y)
PRGS += anarch-gfx
endif

#PRGS_HOST =

TUILIB = tty.o runes.o unikey.o
MALLOC=dmalloc.o
ANARCH_CFLAGS = $(CFLAGS)
ANARCH_GFX_CFLAGS = $(ANARCH_CFLAGS) -DSFG_ELKS_GRAPHICAL_FRONTEND=1
ANARCH_LDFLAGS = $(LDFLAGS)
ANARCH_SRCS = anarch_src/main_elks.c anarch_src/game.h \
	anarch_src/images.h anarch_src/levels.h anarch_src/texts.h \
	anarch_src/palette.h anarch_src/raycastlib.h anarch_src/constants.h \
	anarch_src/settings.h

all: $(PRGS) $(PRGS_HOST)

fm: fm.o strverscmp.o realpath.o strlcpy.o strlcat.o curses.o curses2.o $(TUILIB) $(MALLOC)
	$(LD) $(LDFLAGS) -maout-heap=0xffff -o $@ $^ $(LDLIBS)

matrix: matrix.o tty-cp437.o kcp437.o tty.o runes.o
	$(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS)

cons: cons.o tty-cp437.o kcp437.o tty.o runes.o
	$(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS)

ttyinfo: ttyinfo.o $(TUILIB)
	$(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS)

sl: sl.o curses.o tty.o unikey.o
	$(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS)

ttyclock: ttyclock.o curses.o curses2.o curses3.o tty.o unikey.o
	$(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS)

ttypong: ttypong.o curses.o curses2.o tty.o unikey.o
	$(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS)

tetris: ttytetris.o tetris-frame.o tetris-shapes.o tetris-util.o
	$(LD) $(LDFLAGS) -o tetris $^ $(LDLIBS)

invaders: invaders.o curses.o curses2.o tty.o unikey.o
	$(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS)

anarch_src/main_elks.o: $(ANARCH_SRCS)
	$(call quiet_cmd,CC,$@)
	$(CC) $(ANARCH_CFLAGS) -c -o $@ $<

anarch_src/main_elks_gfx.o: $(ANARCH_SRCS)
	$(call quiet_cmd,CC,$@)
	$(CC) $(ANARCH_GFX_CFLAGS) -c -o $@ $<

anarch: anarch_src/main_elks_gfx.o
	$(LD) $(ANARCH_LDFLAGS) -maout-heap=0xffff -o $@ $^ $(LDLIBS)

anarch-gfx: anarch_src/main_elks_gfx.o
	$(LD) $(ANARCH_LDFLAGS) -maout-heap=0xffff -o $@ $^ $(LDLIBS)

install: $(PRGS)
	$(INSTALL) $(PRGS) $(DESTDIR)/bin

clean:
	$(RM) $(PRGS) $(PRGS_HOST) anarch-gfx *.o anarch_src/*.o
