include		../_conf.txt

OBJS_LANTER_BE_H:= $(wildcard lanter_be*.h)
OBJS_LANTER_BE	:= $(patsubst %.cpp,%.o,$(wildcard lanter_be*.cpp))
OBJS_LANTER_SDL	:= $(patsubst %.cpp,%.o,$(wildcard lanter_sdl*.cpp))
OBJS_LANTER_SDL	:= $(sort $(OBJS_LANTER_BE) $(OBJS_LANTER_SDL))
OBJS_LANTER_MOC	:= $(patsubst %.h,moc_%.o,$(wildcard lanter_qt*.h))
OBJS_LANTER_QT6	:= $(patsubst %.cpp,%.o,$(wildcard lanter_qt*.cpp))
OBJS_LANTER_QT6	:= $(sort $(OBJS_LANTER_BE) $(OBJS_LANTER_MOC) $(OBJS_LANTER_QT6))
OBJS_LANTER_QT5	:= $(OBJS_LANTER_QT6)

OBJS_GINBENCH	:= $(patsubst %.cpp,%.o,$(wildcard ginbench*.cpp))
OBJS_MANDY	:= $(patsubst %.cpp,%.o,$(wildcard mandy*.cpp))
OBJS_PIZOR	:= $(patsubst %.cpp,%.o,$(wildcard pizor*.cpp))
OBJS_PIZOR	:= $(sort $(patsubst %.c,%.o,$(wildcard pizor*.c)) $(OBJS_PIZOR))
OBJS_SOREC	:= $(patsubst %.cpp,%.o,$(wildcard sorec*.cpp))
OBJS_SOUP	:= $(patsubst %.cpp,%.o,$(wildcard soup*.cpp))

BINS		=		\
		mtginbench	\
		mtlanter$(BIN_SUFFIX)	\
		mtlanter-sdl	\
		mtmandy		\
		mtpizor		\
		mtsorec		\
		mtsoup		\


.PHONY:		all install uninstall clean


all:		$(BINS)


mtginbench:	$(OBJS_GINBENCH)
		$(CXX) $^ -o $@ $(LDFLAGS)

mtlanter-sdl:	$(OBJS_LANTER_SDL)
		$(CXX) $^ -o $@ $(LDFLAGS)

mtlanter-qt5:	$(OBJS_LANTER_QT5)
		$(CXX) $^ -o $@ $(LDFLAGS)

mtlanter-qt6:	$(OBJS_LANTER_QT6)
		$(CXX) $^ -o $@ $(LDFLAGS)

mtmandy:	$(OBJS_MANDY)
		$(CXX) $^ -o $@ $(LDFLAGS)

mtpizor:	$(OBJS_PIZOR)
		$(CXX) $^ -o $@ $(LDFLAGS)

mtsorec:	$(OBJS_SOREC)
		$(CXX) $^ -o $@ $(LDFLAGS)

mtsoup:		$(OBJS_SOUP)
		$(CXX) $^ -o $@ $(LDFLAGS)

$(OBJS_GINBENCH): ginbench*.h
$(OBJS_LANTER_SDL): $(OBJS_LANTER_BE_H) lanter_sdl.h
$(OBJS_LANTER_QT5): $(OBJS_LANTER_BE_H) lanter_qt.h
$(OBJS_LANTER_QT6): $(OBJS_LANTER_BE_H) lanter_qt.h
$(OBJS_MANDY):	mandy*.h
$(OBJS_PIZOR):	pizor*.h
$(OBJS_SOREC):	sorec*.h
$(OBJS_SOUP):	soup*.h

# .c.o Implicit rule
# .cpp.o Implicit rule

moc_%.cpp:	%.h
		$(MOC) $< -o $@

install:
		install -d $(DESTDIR)$(BIN_INSTALL)
		install $(BINS) $(DESTDIR)$(BIN_INSTALL)

uninstall:
		cd $(DESTDIR)$(BIN_INSTALL)/; rm $(BINS)

clean:
		rm -f *.o $(BINS)
