# This makefile is set up for DJGPP-based GNU-make

include ../makedefs

CFLAGS = -O3 -m486 -Wall -D$(GRX)
INC    = ../include
INCDEP = bccgrx00.h $(INC)/libbcc.h
LIB    = ../$(LIBDIR)/$(LIBBCC)
ifdef Linux
CFLAGS := $(CFLAGS) -pipe
else
RM     = call ..\bin\rm.bat
endif

ifeq ($(GRX),GRX20)
INCDEP := $(INCDEP) grx20fix.h
endif

BCC_O  = bar.o      \
	 bar3d.o    \
	 bccgrx.o   \
	 bgimode.o  \
	 circle.o   \
	 clearvp.o  \
	 clrdev.o   \
	 detectg.o  \
	 drvname.o  \
	 ellipse.o  \
	 errmsg.o   \
	 fellipse.o \
	 fillpatt.o \
	 fillpoly.o \
	 fillstyl.o \
	 fldfill.o  \
	 getimage.o \
	 getpixel.o \
	 getviewp.o \
	 gmaxcol.o  \
	 gmmaxcol.o \
	 gmmaxx.o   \
	 gmmaxy.o   \
	 gpalsize.o \
	 imagesze.o \
	 line.o     \
	 lnestyle.o \
	 modename.o \
	 palette.o  \
	 page1.o    \
	 page2.o    \
	 page3.o    \
	 page4.o    \
	 page5.o    \
	 page6.o    \
	 polygon.o  \
	 putimage.o \
	 putpixel.o \
	 rectang.o  \
	 rgbpal_g.o \
	 rgbpal_s.o \
	 rstcrtmd.o \
	 sector.o   \
	 setrgbc.o  \
	 setviewp.o \
	 setwrmod.o \
	 text.o     \
	 text1.o    \
	 text2.o    \
	 text3.o    \
	 text4.o    \
	 text5.o    \
	 text6.o    \
	 text7.o    \
	 text8.o    \
	 text9.o    \
	 texta.o    \
	 textb.o    \
	 textc.o    \
	 textd.o

FONT_O = $(subst .chr,.o,$(wildcard *.chr))
FONT_C = $(subst .o,.c,$(FONT_O))

LIB_O = $(BCC_O) $(FONT_O)

BIN2C = bin2c$(EX)
LINKALL = linkall$(EX)

.c.o:
	gcc $(CFLAGS) -I$(INC) -c $*.c -o $*.o

.S.o:
	gcc $(CFLAGS) -c $*.S

all: $(LIB) $(LINKALL)

$(LINKALL): %$(EX): %.o $(LIB_O)
	gcc -s -o $* $*.o $(LIB_O) $(LGRX)
ifndef Linux
	coff2exe $*
	$(RM) $(subst /,\,$*)
endif

$(BIN2C): %$(EX): %.o
	gcc -s -o $* $*.o
ifndef Linux
	coff2exe $*
	$(RM) $(subst /,\,$*)
endif

$(LIB): $(BIN2C) $(LIB_O)
ifdef Linux
	$(RM) $(LIB)
else
	$(RM) $(subst /,\,$(LIB))
endif
	ar rvs $(LIB) $(LIB_O)
	-ranlib $(LIB)

clean:
	$(RM) *.o $(BIN2C) $(LINKALL)
	$(RM) $(FONT_C)

cleanall: clean

# --------------------------------------------------------------------------

$(BCC_O): %.o: %.c $(INCDEP)

$(FONT_C): %.c: %.chr $(BIN2C)
	$(BIN2C) $*.chr _$(notdir $*)_font $*.c
