# Crea la librera y los ejemplos utilizando la herramienta "make" de GNU y los
# compiladores MinGW32 y Free Pascal en el entorno Win32 (Windows 98/XP/NT)

#
# Objetivos
#
-include makefile.list

#
# Opciones
#

# Ntese que se crea una versin para la depuracin (DEBUGMODE=1) y
# sin ningn tipo de optimizacin.  Para obtener una versin optimizada
# y sin depurar deber eliminarse la opcin "-DDEBUGMODE=1" e incluir
# la opcin "-O2" y/o algunas similares.
# Por ejemplo: 
# -Wall -Isrc -Iinclude -DBUILD_ALPAS42_DLL=1 -O2 -ffast-math -fomit-frame-pointer -mtune=i486
CPP_FLAGS = -Wall -Isrc -Iinclude -DDEBUGMODE=1 -DBUILD_MINGRO_DLL=1
LD_LIBS = -lalleg

FPC_FLAGS = -Fulib FEexamples -FUexamples -WG+ -dDEBUGMODE

#
# Reglas
#
.PHONY: all clean veryclean

all: library examples

examples: $(EJEMPLOS)

library: $(LIBRERIA)

# Creacin de los archivos de ayuda
documents:
	fpdoc --package=mingro --descr=docs/mingro.xml --input=lib/mingro.pas --output=docs

obj/%.o: src/%.c
	gcc $(CPP_FLAGS) -o $@ -c $<

$(LIBRERIA): $(OBJ_LIB)
	gcc -shared -o $@ -Wl,--out-implib,lib/libalpas.a $^ -lalleg
	cp $@ examples

examples/%.exe: examples/%.dpr $(LIBRERIA)
	fpc $(FPC_FLAGS) $< -o$@

clean:
	rm obj/*.o examples/*.o examples/*.ppu

veryclean:
	rm obj/*.o examples/*.exe examples/*.o examples/*.ppu lib/*.a lib/*.dll

