SHELL = /bin/sh

CC = gcc

CFLAGS = 
CPPFLAGS = -DLINUX -Icommon
LDFLAGS =
LIBS =
ODIR = x86
ODIR64 = x64
ODIRN800 = n800

_OBJS = fileio.o linuxserio.o lowlevel.o server.o errormessage.o flashrom.o webserver.o xap.o lanio.o ascii.o
OBJS = $(patsubst %,$(ODIR)/%,$(_OBJS))
OBJS64 = $(patsubst %,$(ODIR64)/%,$(_OBJS))
OBJSN800 = $(patsubst %,$(ODIRN800)/%,$(_OBJS))

all: irserver irserver64

irserver: $(OBJS) $(ODIR)/ccf.o 
	$(CC) $(CFLAGS) $(OBJS) $(ODIR)/ccf.o -m32 -o irserver $(LDFLAGS)

irserver_noccf: $(OBJS) $(ODIR)/noccf.o
	$(CC) $(CFLAGS) $(OBJS) $(ODIR)/noccf.o -m32 -o irserver $(LDFLAGS)

irserver64: $(OBJS64) $(ODIR64)/ccf.o 
	$(CC) $(CFLAGS) -DX64 $(OBJS64) $(ODIR64)/ccf.o -m64 -o irserver64 $(LDFLAGS)

irserver64_noccf: $(OBJS64) $(ODIR64)/noccf.o
	$(CC) $(CFLAGS) -DX64 $(OBJS64) $(ODIR64)/noccf.o -m64 -o irserver64 $(LDFLAGS)

irservern800: $(OBJSN800) $(ODIRN800)/ccf.o 
	$(CC) $(CFLAGS) $(OBJSN800) $(ODIRN800)/ccf.o -o irserver $(LDFLAGS)
	
irservern800_noccf: $(OBJSN800) $(ODIRN800)/noccf.o 
	$(CC) $(CFLAGS) $(OBJSN800) $(ODIRN800)/noccf.o -o irserver $(LDFLAGS)

clean:
	-rm $(OBJS) x86/noccf.o
	-rm $(OBJS64) x64/noccf.o
	-rm $(OBJSN800) n800/noccf.o


$(ODIR)/%.o: %.c common/dbstruct.h fileio.h lowlevel.h common/network.h serio.h pictures.h common/remote.h makefile
	$(CC) $(CPPFLAGS) $(CFLAGS) -m32 -c $< -o $@


$(ODIR64)/%.o: %.c common/dbstruct.h fileio.h lowlevel.h common/network.h serio.h pictures.h common/remote.h makefile
	$(CC) $(CPPFLAGS) $(CFLAGS) -DX64 -m64 -c $< -o $@

$(ODIRN800)/%.o: %.c common/dbstruct.h fileio.h lowlevel.h common/network.h serio.h pictures.h common/remote.h makefile
	$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@

irclient: client.c
	$(CC) $(CPPFLAGS) $(CFLAGS) client.c -o irclient $(LDFLAGS)

