### compilers and options
CC	= gcc
CFLAGS	= -O2 -march=i686 -mcpu=i686 -Wall -Werror
LD	= ld
LDFLAGS	= -s -S -T ldscript.ld
NASM	= nasm
NASMFLAGS = -f elf

### objects
OBJECTS_ATTACH	= imports.o strh.o attach.o
OBJECTS_DETACH	= imports.o detach.o
OBJECTS_SHADOWCMAKER = imports.o strh.o shadowcmaker.o
OBJECTS_BACKUP	= imports.o ntfile.o printf.o cfgparser.o strh.o backup.o \
			attach_includer.o


RESOURCES = 
TOPDIR  := $(shell /bin/pwd)

# target:
all	: clean attach.xbe detach.xbe shadowcmaker.xbe backup.xbe

attach.xbe : ${OBJECTS_ATTACH} ${RESOURCES}
	${LD} -o $@ ${OBJECTS_ATTACH} ${RESOURCES} ${LDFLAGS}

detach.xbe : ${OBJECTS_DETACH} ${RESOURCES}
	${LD} -o $@ ${OBJECTS_DETACH} ${RESOURCES} ${LDFLAGS}

shadowcmaker.xbe : ${OBJECTS_SHADOWCMAKER} ${RESOURCES}
	${LD} -o $@ ${OBJECTS_SHADOWCMAKER} ${RESOURCES} ${LDFLAGS}

backup.xbe : ${OBJECTS_BACKUP} ${RESOURCES}
	${LD} -o $@ ${OBJECTS_BACKUP} ${RESOURCES} ${LDFLAGS}

clean	:
	rm -rf *.o *~ core *.core ${RESOURCES} attach.xbe \
		detach.xbe shadowcmaker.xbe backup.xbe

### rules:
%.o	: %.c
	${CC} ${CFLAGS} -o $@ -c $<

%.o	: %.S
	${CC} -DASSEMBLER ${CFLAGS} -o $@ -c $<

%.o	: %.asm
	${NASM} ${NASMFLAGS} -o $@ $<

attach_includer.o : attach_includer.asm attach.xbe
	${NASM} ${NASMFLAGS} -o $@ $<
