OBJDIR = ../../obj/unix.$(DISPLAY_METHOD)
TARGET = $(OBJDIR)/osdepend.a

COMMON_OBJS  =  \
	$(OBJDIR)/main.o $(OBJDIR)/sound.o \
	$(OBJDIR)/keyboard.o $(OBJDIR)/devices.o \
	$(OBJDIR)/video.o $(OBJDIR)/dirty.o $(OBJDIR)/mode.o \
	$(OBJDIR)/fileio.o $(OBJDIR)/config.o $(OBJDIR)/fronthlp.o \
	$(OBJDIR)/ident.o $(OBJDIR)/network.o \
	$(OBJDIR)/nec765_dummy.o $(OBJDIR)/debug.o


#joystick objs
JOY_DIR  = $(OBJDIR)/joystick-drivers
JOY_OBJS = $(JOY_DIR)/joy_i386.o $(JOY_DIR)/joy_pad.o $(JOY_DIR)/joy_x11.o


#framskip objs
FRAMESKIP_DIR  = $(OBJDIR)/frameskip-drivers
FRAMESKIP_OBJS = $(FRAMESKIP_DIR)/dos.o $(FRAMESKIP_DIR)/barath.o


#Video driver objs per display method
VID_DIR = $(OBJDIR)/video-drivers

VID_OBJS.$(DISPLAY_METHOD) = $(VID_DIR)/$(DISPLAY_METHOD).o

VID_OBJS.x11    += $(VID_DIR)/xinput.o $(VID_DIR)/xil.o \
	$(VID_DIR)/x11_window.o $(VID_DIR)/xf86_dga.o 
VID_OBJS.xgl    += $(VID_DIR)/glvec.o $(VID_DIR)/glgen.o $(VID_DIR)/gljpg.o \
	$(VID_DIR)/glcab.o $(VID_DIR)/xinput.o
VID_OBJS.xfx    += $(VID_DIR)/fxgen.o $(VID_DIR)/fxvec.o $(VID_DIR)/xinput.o
VID_OBJS.svgafx += $(VID_DIR)/fxgen.o $(VID_DIR)/fxvec.o


#Sound driver objs per arch
SOUND_DIR = $(OBJDIR)/sound-drivers

SOUND_OBJS.linux_powerpc = $(SOUND_DIR)/nosound.o
SOUND_OBJS.linux_alpha   = $(SOUND_DIR)/oss.o
SOUND_OBJS.linux_i386    = $(SOUND_DIR)/oss.o
SOUND_OBJS.FREEBSD       = $(SOUND_DIR)/oss.o
SOUND_OBJS.netbsd_i386   = $(SOUND_DIR)/netbsd.o
SOUND_OBJS.netbsd_alpha  = $(SOUND_DIR)/netbsd.o
SOUND_OBJS.sunos         = $(SOUND_DIR)/nosound.o
SOUND_OBJS.solaris       = $(SOUND_DIR)/solaris.o
SOUND_OBJS.solaris_i386  = $(SOUND_DIR)/solaris.o
SOUND_OBJS.irix          = $(SOUND_DIR)/irix.o
SOUND_OBJS.irix_al       = $(SOUND_DIR)/irix.o
SOUND_OBJS.irix_nosound  = $(SOUND_DIR)/nosound.o
SOUND_OBJS.aix           = $(SOUND_DIR)/aix.o
SOUND_OBJS.aix_nosound   = $(SOUND_DIR)/nosound.o
SOUND_OBJS.hpux          = $(SOUND_DIR)/nosound.o
SOUND_OBJS.ultrix        = $(SOUND_DIR)/nosound.o
SOUND_OBJS.unixware7     = $(SOUND_DIR)/nosound.o
SOUND_OBJS.next_mach     = $(SOUND_DIR)/next_mach.o
SOUND_OBJS.alpha_dux     = $(SOUND_DIR)/nosound.o

OBJS = $(COMMON_OBJS) $(VID_OBJS.$(DISPLAY_METHOD)) $(SOUND_OBJS.$(ARCH)) \
	$(JOY_OBJS) $(FRAMESKIP_OBJS)

OBJDIRS = $(OBJDIR) $(SOUND_DIR) $(VID_DIR) $(JOY_DIR) $(FRAMESKIP_DIR)

all:	$(OBJDIRS) $(TARGET)

clean:
	rm -f $(TARGET) $(OBJS)

$(TARGET): $(OBJS)
	$(CC_COMMENT) @echo 'Archiving $@ ...'
	$(CC_COMPILE) ar $(AR_OPTS) $@ $(OBJS)
	$(CC_COMPILE) $(RANLIB) $@

$(OBJDIRS):
	-mkdir $@

$(OBJDIR)/%.o: %.c xmame.h sound.h
	$(CC_COMMENT) @echo 'Compiling src/unix/$< ...'
	$(CC_COMPILE) $(CC) -I../../src/ -I. $(CFLAGS) -o $@ -c $<

$(OBJDIR)/%.o: %.m xmame.h sound.h
	$(CC_COMMENT) @echo 'Compiling src/unix/$< ...'
	$(CC_COMPILE) $(CC) -I../../src/ -I. $(CFLAGS) -o $@ -c $<

$(VID_DIR)/x11_window.o: video-drivers/blit.h video-drivers/blit_core.h
$(VID_DIR)/svgalib.o: video-drivers/blit.h video-drivers/blit_core.h
$(VID_DIR)/xf86_dga.o: video-drivers/blit.h video-drivers/blit_core.h
$(VID_DIR)/xinput.o: video-drivers/xkeyboard.h
