# flext tutorial examples
# Copyright (c) 2001-2003 Thomas Grill (xovo@gmx.net)
#
# This is a make include file for BorlandC++ 
# It can't be used on its own
#
# ---------------------------------------------

!include ..\config-pd-bcc.txt

OUTPATH=..\$(OUTPATH)

TARGET=pdwin

# includes, libs
INCPATH=-I$(BCCPATH)\include -I$(PDPATH)\src -I$(FLEXTPATH)
LIBPATH=-L$(BCCPATH)\lib -L$(PDPATH)\lib -L$(FLEXTPATH)
LIBS=cw32.lib import32.lib C0D32.OBJ

# compiler definitions and flags
DEFS=-DFLEXT_SYS=2
CFLAGS=-6 -O2 -OS -ff -tWD 

# the rest can stay untouched
# ----------------------------------------------

# all the source files from the package
SRCS= main.cpp
HDRS= 

#default target
all: $(OUTPATH)\$(NAME).dll

# remove build
clean:
	-del /s /q $(OUTPATH) > nul
	rmdir $(OUTPATH)

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

OBJS= $(SRCS:.cpp=.obj)

$(SRCS): $(HDRS)
	-touch $<

.PATH.OBJ=$(OUTPATH)

.cpp.obj:
	bcc32 -c $(CFLAGS) $(DEFS) $(INCPATH) -n$(OUTPATH) $<

$(OUTPATH):
	-@if not exist $< mkdir $<

$(OUTPATH)\pd.lib: $(PDPATH)\bin\pd.dll
	implib -a $@ $**

$(OUTPATH)\$(NAME).def:
	@echo EXPORTS $(SETUPFUNCTION) = _$(SETUPFUNCTION) > $<
# this next line fixes a strange problem with implib - lacking underscore?!
	@echo IMPORTS _rtext_retext=PD.rtext_retext >> $<

$(OUTPATH)\$(NAME)~.dll : $(OUTPATH)\$(NAME).dll
	-ren $** $<

$(OUTPATH)\$(NAME).dll :: $(OUTPATH) $(OUTPATH)\$(NAME).def $(OUTPATH)\pd.lib 

$(OUTPATH)\$(NAME).dll :: $(OBJS) 
	ilink32 -C -Tpd $(LIBPATH) $** ,$<,,$(LIBS) $(OUTPATH)\pd.lib $(FLEXTPATH)\flext-$(TARGET).lib ,$(OUTPATH)\$(NAME).def
	-@del $**
	-@del $(OUTPATH)\*.i*
	-@del $(OUTPATH)\*.map
	-@del $(OUTPATH)\*.def
	-@del $(OUTPATH)\*.tds