DATE := $(shell date +%Y_%m_%d_%H%M)
HOST := $(shell hostname)
CURDIR := $(shell pwd)
PROJDIR := $(shell basename $(CURDIR))

VERSION := $(DATE)
DIST := $(PROJDIR)-$(VERSION).tar.gz

CC := gcc
LD := ld

LINKX := -L/usr/X11R6/lib64 -L/usr/X11R6/lib -lX11 -lXext -lXv

CFLAGS := -Wall -O3
LDFLAGS := -s
CLIBS := -lm $(LINKX)
ASMFLAGS := -Wall

# --- computed variables
comma := ,
empty :=
space := $(empty) $(empty)
CLINKFLAGS := -Wl,$(subst $(space),$(comma),$(LDFLAGS))

COBJS := video_device.o main.o hm12.o
EXTERNOBJS := YGL2/libytk.a
EXEC := gemvid

OBJS := $(COBJS) $(EXTERNOBJS)


.PHONY: all clean dist $(EXTERNOBJS)

all: $(EXEC)

clean:
	cd YGL2; make clean
	rm -f $(COBJS) $(EXEC)

dist: clean
	cd ..; tar -czhf $(DIST) $(PROJDIR)

$(EXEC): $(OBJS)
	$(CC) $(CFLAGS) $(CLINKFLAGS) -o $(@) $(^) $(CLIBS)

$(COBJS) : %.o : %.c %.h Makefile
	$(CC) $(CFLAGS) -c -o $(@) $(<)

$(EXTERNOBJS) :
	cd $(@D); make $(@F)


