#----------------------------------------------------------------------
# Makefile for the main svgalib source.
#----------------------------------------------------------------------

# *** NO SERVICIBLE PARTS HERE!
#     All options are in Makefile.cfg.

include ../Makefile.cfg

srcdir    = ..
VPATH     = $(srcdir)/src

#----------------------------------------------------------------------
# Compiler Section (overrides Makefile.cfg)
#----------------------------------------------------------------------

INCLUDES += -I$(srcdir)/src

#----------------------------------------------------------------------
# Rules Section
#----------------------------------------------------------------------

DRIVERS = vgadrv.o regextr.o modetab.o
MODULES = vga.o \
          vgadraw.o vgaclear.o vgaline.o vgapix.o \
          vgapal.o vgacol.o vgamodes.o vgamisc.o \
          vgadump.o vgaconvp.o vgaaccel.o \
          timing.o vgaregs.o interfac.o accel.o
MOUSE   = mouse/mouse.o
KEYBOARD = keyboard/keyboard.o
RAMDAC	= ramdac/ramdac.o ramdac/normal.o ramdac/attdacs.o ramdac/sierra.o \
          ramdac/icw.o ramdac/s3dacs.o ramdac/IBMRGB52.o
CLOCKCHIP = clockch/icd2061a.o

# defines for all files.
ifdef SVGALIB_CONFIG_FILE
  DEFINES += -DSVGALIB_CONFIG_FILE=\"$(SVGALIB_CONFIG_FILE)\"
endif
ifdef ALLOW_MOUSE_OVERRIDE
  DEFINES += -DALLOW_MOUSE_OVERRIDE
endif

# defines for vga.c only.
ifdef INCLUDE_ET4000_DRIVER
  VGA_DEFINES += -DINCLUDE_ET4000_DRIVER
  DRIVERS += et4000.o vgahico.o 
  ifdef INCLUDE_ET4000_DRIVER_TEST
    VGA_DEFINES += -DINCLUDE_ET4000_DRIVER_TEST
  endif
  ifdef DYNAMIC
    DEFINES += -DDYNAMIC
  endif
  ifdef ET4000_REGS
    DEFINES += -DET4000_REGS=\"$(ET4000_REGS)\"
  endif
  ifdef USE_CLOCKS
    DEFINES += -DUSE_CLOCKS
  endif
endif
ifdef INCLUDE_CIRRUS_DRIVER
  VGA_DEFINES += -DINCLUDE_CIRRUS_DRIVER
  DRIVERS += cirrus.o
  ifdef INCLUDE_CIRRUS_DRIVER_TEST
    VGA_DEFINES += -DINCLUDE_CIRRUS_DRIVER_TEST
  endif
endif
ifdef INCLUDE_TVGA_DRIVER
  VGA_DEFINES += -DINCLUDE_TVGA_DRIVER
  DRIVERS += tvga8900.o
  ifdef INCLUDE_TVGA_DRIVER_TEST
    VGA_DEFINES += -DINCLUDE_TVGA_DRIVER_TEST
  endif
endif
ifdef INCLUDE_OAK_DRIVER
  VGA_DEFINES += -DINCLUDE_OAK_DRIVER
  DRIVERS += oak.o
  ifdef INCLUDE_OAK_DRIVER_TEST
    VGA_DEFINES += -DINCLUDE_OAK_DRIVER_TEST
  endif
endif
ifdef INCLUDE_EGA_DRIVER
  VGA_DEFINES += -DINCLUDE_EGA_DRIVER
  DRIVERS += egadrv.o
  ifdef INCLUDE_EGA_DRIVER_TEST
    VGA_DEFINES += -DINCLUDE_EGA_DRIVER_TEST
  endif
  ifdef EGA_REGS
    DEFINES += -DEGA_REGS=\"$(EGA_REGS)\"
  endif
endif
ifdef INCLUDE_MACH32_DRIVER
  VGA_DEFINES += -DINCLUDE_MACH32_DRIVER
  DRIVERS += mach32.o
  ifdef INCLUDE_MACH32_DRIVER_TEST
    VGA_DEFINES += -DINCLUDE_MACH32_DRIVER_TEST
  endif
endif
ifdef INCLUDE_S3_DRIVER
  VGA_DEFINES += -DINCLUDE_S3_DRIVER
  DRIVERS += s3.o
  ifdef INCLUDE_S3_DRIVER_TEST
    VGA_DEFINES += -DINCLUDE_S3_DRIVER_TEST
  endif
endif
ifdef INCLUDE_ET3000_DRIVER
  VGA_DEFINES += -DINCLUDE_ET3000_DRIVER
  DRIVERS += et3000.o
  ifdef INCLUDE_ET3000_DRIVER_TEST
    VGA_DEFINES += -DINCLUDE_ET3000_DRIVER_TEST
  endif
endif
ifdef INCLUDE_GVGA6400_DRIVER
  VGA_DEFINES += -DINCLUDE_GVGA6400_DRIVER
  DRIVERS += gvga6400.o
  ifdef INCLUDE_GVGA6400_DRIVER_TEST
    VGA_DEFINES += -DINCLUDE_GVGA6400_DRIVER_TEST
  endif
endif
ifdef INCLUDE_ARK_DRIVER
  VGA_DEFINES += -DINCLUDE_ARK_DRIVER
  DRIVERS += ark.o
  ifdef INCLUDE_ARK_DRIVER_TEST
    VGA_DEFINES += -DINCLUDE_ARK_DRIVER_TEST
  endif
endif
ifdef INCLUDE_ATI_DRIVER
  VGA_DEFINES += -DINCLUDE_ATI_DRIVER
  DRIVERS += ati.o
  ifdef INCLUDE_ATI_DRIVER_TEST
    VGA_DEFINES += -DINCLUDE_ATI_DRIVER_TEST
  endif
endif
ifdef INCLUDE_ALI_DRIVER
  VGA_DEFINES += -DINCLUDE_ALI_DRIVER
  DRIVERS += ali.o
  ifdef INCLUDE_ALI_DRIVER_TEST
    VGA_DEFINES += -DINCLUDE_ALI_DRIVER_TEST
  endif
endif
ifdef INCLUDE_MACH64_DRIVER
  VGA_DEFINES +=-DINCLUDE_MACH64_DRIVER
  DRIVERS += mach64.o
  ifdef INCLUDE_MACH64_DRIVER_TEST
    VGA_DEFINES += -DINCLUDE_MACH64_DRIVER_TEST
  endif
endif

# defines for ramdac.c, ramdac.h (and files including it) only.
ifdef INCLUDE_NORMAL_DAC
  RAMDAC_DEFINES += -DINCLUDE_NORMAL_DAC
  ifdef INCLUDE_NORMAL_DAC_TEST
    RAMDAC_DEFINES += -DINCLUDE_NORMAL_DAC_TEST
  endif
endif
ifdef INCLUDE_S3_SDAC_DAC
  RAMDAC_DEFINES += -DINCLUDE_S3_SDAC_DAC
  ifdef INCLUDE_S3_SDAC_DAC_TEST
    RAMDAC_DEFINES += -DINCLUDE_S3_SDAC_DAC_TEST
  endif
endif
ifdef INCLUDE_S3_GENDAC_DAC
  RAMDAC_DEFINES += -DINCLUDE_S3_GENDAC_DAC
  ifdef INCLUDE_S3_GENDAC_DAC_TEST
    RAMDAC_DEFINES += -DINCLUDE_S3_GENDAC_DAC_TEST
  endif
endif
ifdef INCLUDE_S3_TRIO64_DAC
  RAMDAC_DEFINES += -DINCLUDE_S3_TRIO64_DAC
  ifdef INCLUDE_S3_TRIO64_DAC_TEST
    RAMDAC_DEFINES += -DINCLUDE_S3_TRIO64_DAC_TEST
  endif
endif
ifdef INCLUDE_SIERRA_DAC
  RAMDAC_DEFINES += -DINCLUDE_SIERRA_DAC
  ifdef INCLUDE_SIERRA_DAC_TEST
    RAMDAC_DEFINES += -DINCLUDE_SIERRA_DAC_TEST
  endif
endif
ifdef INCLUDE_SC15025_DAC
  RAMDAC_DEFINES += -DINCLUDE_SC15025_DAC
  ifdef INCLUDE_SC15025_DAC_TEST
    RAMDAC_DEFINES += -DINCLUDE_SC15025_DAC_TEST
  endif
endif
ifdef INCLUDE_ATT20C490_DAC
  RAMDAC_DEFINES += -DINCLUDE_ATT20C490_DAC
  ifdef INCLUDE_ATT20C490_DAC_TEST
    RAMDAC_DEFINES += -DINCLUDE_ATT20C490_DAC_TEST
  endif
endif
ifdef INCLUDE_ATT20C498_DAC
  RAMDAC_DEFINES += -DINCLUDE_ATT20C498_DAC
  ifdef INCLUDE_ATT20C498_DAC_TEST
    RAMDAC_DEFINES += -DINCLUDE_ATT20C498_DAC_TEST
  endif
endif
ifdef INCLUDE_ICW_DAC
  RAMDAC_DEFINES += -DINCLUDE_ICW_DAC
  ifdef INCLUDE_ICW_DAC_TEST
    RAMDAC_DEFINES += -DINCLUDE_ICW_DAC_TEST
  endif
endif
ifdef INCLUDE_IBMRGB52x_DAC
  RAMDAC_DEFINES += -DINCLUDE_IBMRGB52x_DAC
  ifdef INCLUDE_IBMRGB52x_DAC_TEST
    RAMDAC_DEFINES += -DINCLUDE_IBMRGB52x_DAC_TEST
  endif
endif
ifdef INCLUDE_SC1148X_DAC
  RAMDAC_DEFINES += -DINCLUDE_SC1148X_DAC
  ifdef INCLUDE_SC1148X_DAC_TEST
    RAMDAC_DEFINES += -DINCLUDE_SC1148X_DAC_TEST
  endif
endif

ALLOBJS = $(MODULES) $(RAMDAC) $(CLOCKCHIP) $(DRIVERS)

.c.o:
	$(CC) $(CFLAGS) -c -o $*.o $<

.c.s:
	$(CC) $(CFLAGS) -S -o $*.s $<

.PHONY:	all dep depadd clean install FORCE





all:	libvga.a



libvga.a: $(ALLOBJS)
	del libvga.a
	$(AR) rcs libvga.a $(ALLOBJS)

libvgagl.a: FORCE
	make -f $(srcdir)/gl/Makefile $@ srcdir="$(srcdir)" DLLFLAGS="$(DLLFLAGS)"

vga.o: vga.c
	$(CC) $(CFLAGS) $(VGA_DEFINES) -c -o $@ $<

$(RAMDAC): %.o: %.c
	$(CC) $(CFLAGS) $(RAMDAC_DEFINES) -c -o $@ $<

s3.o ark.o: %.o: %.c
	$(CC) $(CFLAGS) $(RAMDAC_DEFINES) -c -o $@ $<


	
clean:
	del libvga.a
	del *.o
	del clockch\*.o
	del ramdac\*.o
